2017-01-04 48 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應該進入版本控制。