【问题标题】:Can't Install babel Plugin `transform-es2015-destructuring`无法安装 babel 插件`transform-es2015-destructuring`
【发布时间】:2016-07-26 22:53:17
【问题描述】:

我正在尝试在我的 Mocha 测试中使用 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",

谁能建议我如何解决这个问题?

【问题讨论】:

    标签: node.js npm babeljs


    【解决方案1】:

    这不是preset,而是plugin,因此请确保将其设置为插件而不是预设

    在你的.babelrc:

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

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

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

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

    【讨论】:

    • 这完美地解释了事情:我完全错过了那个(非常重要的)区别。谢谢!
    猜你喜欢
    • 2019-12-18
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2017-08-18
    • 1970-01-01
    • 2016-07-15
    相关资源
    最近更新 更多