错误:无法find预设“反应”安装时使用npm install –global babel-preset-react但工作没有全局标志

我使用npm install --global babel-cli安装了Babel CLI(版本6)。 然后我使用npm install --global babel-preset-react安装反应预设。

然后我将项目目录中的.babelrc文件设置为

 { "presets": ["react"] } 

当我尝试构build一个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) 

如果我安装的预设没有 – 全局标志(即安装在node_modules /文件夹本地),那么构build工程。 我如何设置让babel使用全局预设?

您可以指定要尝试使用的预设的绝对(或相对)path,例如:

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

可选的修复

你可以这样做。 在提示中写下这些行。 现在唯一的事情是全球性的,你可能不得不使用@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/ 

然后有select地添加一个.gitignore文件到你的github仓库中,内容= node_modules /现在用相同的命令运行你的jsx转换。