无法安装babel Plugin`transform-es2015-destructuring`

我试图在我的摩卡testing中使用Babel插件transform-es2015-destructuring ,但是我遇到了一个问题:

 $ node_modules/mocha/bin/mocha --compilers js:babel-core/register test/testMain.js /home/my/project/node_modules/babel-core/lib/transformation/file/options/option-manager.js:313 throw new Error("Couldn't find preset " + (0, _stringify2.default)(val) + " relative to directory " + (0, _stringify2.default)(dirname)); ^ Error: Couldn't find preset "transform-es2015-destructuring" relative to directory "/home/my/project" 

但是,当我尝试安装插件时,一切工作正常:

 $ npm install babel-plugin-transform-es2015-destructuring myproject-reactjs@1.8.1 /home/my/project └── babel-plugin-transform-es2015-destructuring@6.9.0 

如果我直接使用Babel,我也有同样的问题:

 ./node_modules/babel-cli/bin/babel.js --plugins transform-es2015-destructuring test/testMain.js Error: Couldn't find preset "transform-es2015-destructuring" relative to directory "/home/my/project" 

换句话说,NPM告诉我我有这个插件,但是Babel告诉我我没有这个插件。 我很想相信NPM是正确的,但如果是这样的话,我不明白为什么Babel找不到(明确安装的)变换包。

这是我的.babelrc

 { "presets": [ "es2015", "react", "transform-es2015-destructuring", "transform-object-rest-spread" ] } 

这里是我在package.json dependencies条目的相关部分:

 "babel": "^6.5.2", "babel-plugin-transform-es2015-destructuring": "^6.9.0", "babel-plugin-transform-object-rest-spread": "^6.8.0", "babel-preset-es2015": "^6.9.0", "babel-preset-react": "^6.11.1", 

任何人都可以build议我如何解决这个问题?

这不是一个preset它是一个plugin ,所以请确保您将其设置为插件而不是预设

在你的.babelrc

 { "presets": [ "es2015", "react" ], "plugins": [ "transform-es2015-destructuring", "transform-object-rest-spread" ] } 

在这种情况下,你可以排除使用--plugins

预设基本上是插件的集合。

顺便说一句,您可以使用node_modules/.bin/babel来使用本地安装的可执行文件,而不是试图find它们的模块本身。