我正试图在我的摩卡测试中使用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"
]
}下面是我的dependencies条目在package.json中的相关部分
"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",有人能建议我怎么解决这个问题吗?
发布于 2016-07-26 22:56:42
它不是一个preset,而是一个plugin,所以要确保将它设置为插件而不是预置。
在你的.babelrc里
{
"presets": [
"es2015",
"react"
],
"plugins": [
"transform-es2015-destructuring",
"transform-object-rest-spread"
]
}在这种情况下,可以使用--plugins排除
预置本质上是插件的集合。
顺便说一句,您可以使用node_modules/.bin/babel来使用本地安装的可执行文件,而不是试图找到模块本身。
https://stackoverflow.com/questions/38601146
复制相似问题