2015-11-05 29 views
14

我使用npm install --global babel-cli安裝了Babel CLI(版本6)。然後我使用npm install --global babel-preset-react安裝反應預設。錯誤:使用npm安裝時無法找到預設「反應」安裝 - 全局babel-preset-react但無全局標誌工作

然後我設置了.babelrc文件中的項目目錄

{ 
    "presets": ["react"] 
} 

當我嘗試建立一個JSX文件,它失敗

Error: Couldn't find preset "react" 
    at OptionManager.mergePresets (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:310:17) 
    at OptionManager.mergeOptions (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:270:12) 
    at OptionManager.addConfig (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:206:10) 
    at OptionManager.findConfigs (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:347:16) 
    at OptionManager.init (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:392:12) 
    at File.initOptions (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/index.js:191:75) 
    at new File (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/index.js:122:22) 
    at Pipeline.transform (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/pipeline.js:42:16) 
    at transform (/usr/local/lib/node_modules/babel-cli/lib/babel/util.js:53:22) 
    at Object.compile (/usr/local/lib/node_modules/babel-cli/lib/babel/util.js:62:12) 

如果我安裝預設不--global標誌(即在本地安裝在node_modules /文件夾中),那麼構建工作。我如何設置讓babel與全局預設一起工作?

+0

我嘗試從Python運行babel作爲一個單獨的進程時遇到了同樣的錯誤。它在控制檯上正常工作,所以我做了一些小調試。我將console.log(dirname)添加到了options-manager.js的第305行,並發現當前工作目錄必須是項目目錄。希望這可以幫助你。 – CookieOfFortune

+0

使用預設全局的要點是什麼? – 2015-11-23 12:11:14

+0

@CookieOfFortune - 我不認爲在項目目錄中是必要的。我在其他文件夾的本地安裝模塊,並從那裏建立項目。只要當前工作目錄有模塊,它就會工作。 – KaranK

回答

14

您可以指定絕對(或相對)路徑,你要使用預設,e.g:

babel --presets /usr/local/lib/node_modules/babel-preset-react --watch jsx/ --out-dir js/ 
+1

不適用於我。給出同樣的錯誤。 :( – KaranK

+1

它給了我同樣的錯誤,以及:( – socketwiz

+1

重新創建虛擬機並重新安裝庫後用'sudo apt-get -y install nodejs-legacy npm'然後'sudo npm install --global babel-cli'然後'sudo npm install --global babel-preset-react'。解決方案有效。**請注意,您必須刪除.babelrc文件才能使用。** @Petar - 您可以編輯您的答案嗎? – KaranK

-1

可選修復

你可以這樣來做。在提示中寫下這些行。現在唯一的事情是與全球您可能需要使用fix通過@Petar 這是

babel --presets /usr/local/lib/node_modules/babel-preset-react --watch jsx/ --out-dir js/ 

但是這一個做所有你需要以上建議。

npm i babel-cli babel-preset-react 

babel --presets react jsx/ --watch --out-dir js/ 

,然後任選與內容的GitHub庫中添加的.gitignore文件= node_modules/ 現在運行使用相同的命令你的JSX改造。