2017-01-04 28 views
0

在Windows 10(64位) 安装babel-clireactbabel-preset-react上的Node.js,其通过Windows安装安装的顶端使用Cygwin的(由于没有用于Cygwin的不支持。)我在全局模块文件夹中使用yarn安装了这些节点包。预编译为JSX反应。在Django的压缩机

django-compressor文档(https://django-compressor.readthedocs.io/en/latest/reactjs/)他们说,预编译器设置的伎俩:(遇到虚拟DOM元素时抛出的错误)

COMPRESS_PRECOMPILERS = (
    ('text/jsx', 'cat {infile} | babel > {outfile}'), 
) 

然而,巴贝尔是不承认jsx很明显,因为我未将react预设传递给命令。但是,我无法使用该预设,因为我安装在全局模块文件夹中,现在我无法使babel找到并使用它。

我需要这些可能的解决方案之一:

  1. 我怎样才能让巴贝尔利用全球的装机预置的话(我应该如何使用babel --presets react在一个可行的办法)?

  2. 如何在Django项目中使用.babelrc文件?

  3. 如果我要在本地安装预设(我似乎很不喜欢),如何让我的Django项目与我的项目目录结构无关?

回答

2

好吧,我撞我的头几次,找到了解决方法:

  1. 有没有办法让在全球的装机预置巴贝尔工作。必须在本地安装它们。所有react,react-dom,babel-core,babel-loader,babel-preset-react(并且如果需要最新的ECMA语法,也许是babel-preset-es2015)必须在本地安装。

  2. 有没有地方把.babelrc文件预编译器将使用它。没有用package.json也有babel部分。相反,预编译器设置应通过预设的命令行,如:

    COMPRESS_PRECOMPILERS = (
        ('text/jsx', 'cat {infile} | babel --presets react,es2015 > {outfile}'), 
    ) 
    
  3. 只是假设,其中manage.py生活也是包的NodeJS的根文件夹。部署并从wsgi文件运行时未测试,但wsgi也应该生活在manage.py旁边。

此外,它看起来像所有这些文件和文件夹:node_modulespackage.jsonyarn.lock(如果与yarn安装,因为我)必须包含在版本控制。

编辑: 我没有loger认为node_modules应该进入版本控制。