【问题标题】:Unknown option: .../.babelrc.presets未知选项:.../.babelrc.presets
【发布时间】:2015-11-13 03:17:36
【问题描述】:

我正在为 es2015 使用 Babel 6 并做出反应,这需要 babel-preset-es2015babel-preset-react

我在.babelrc 中添加了presets 属性,但它抛出了一个错误:

ERROR in ./src/client/entry.js
Module build failed: ReferenceError: [BABEL] /Users/brick/Dropbox/learncoding/node.js/isomorphic/src/client/entry.js: Unknown option: /Users/brick/Dropbox/learncoding/node.js/isomorphic/.babelrc.presets
    at Logger.error (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/logger.js:58:11)
    at OptionManager.mergeOptions (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/options/option-manager.js:126:29)
    at OptionManager.addConfig (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/options/option-manager.js:107:10)
    at OptionManager.findConfigs (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/options/option-manager.js:168:35)
    at OptionManager.init (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/options/option-manager.js:229:12)
    at File.initOptions (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/index.js:147:75)
    at new File (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/index.js:137:22)
    at Pipeline.transform (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/pipeline.js:164:16)
    at transpile (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-loader/index.js:12:22)
    at Object.module.exports (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-loader/index.js:69:12)
 @ multi main

我的.babelrc 文件是:

{
  "presets": [
    "es2015",
    "react"
  ]
}

我可以运行babel src -d lib 命令,它可以工作。但是如果我运行npm start 通过package.json 运行babel,就会出现错误。

我想我可以忽略该错误,因为应用程序正在运行。但我想知道为什么会出现这个错误,但不确定它会影响什么。

我在package.json 中的scripts 是:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "clean": "rm -rf lib",
    "build": "npm run clean && /usr/local/bin/babel src -d lib --experimental",
    "server": "nodemon lib/server/server",
    "dev-server": "node lib/server/webpack",
    "watch-js": "/usr/local/bin/babel src -d lib --experimental -w",
    "start": "npm run watch-js & npm run dev-server & npm run server"
  },

我的entry.js

import React from "react";
import Router from "react-router";
import ReactDOM from "react-dom";
import routes from "./routes";
import DataWrapper from './DataWrapper';
import createBrowserHistory from 'history/lib/createBrowserHistory';

let history = createBrowserHistory();
var data = JSON.parse(document.querySelector('#data').innerHTML);
ReactDOM.render(<DataWrapper data={data}><Router history = {history}>{routes}</Router></DataWrapper>, document.querySelector('#app'));

【问题讨论】:

    标签: node.js babeljs


    【解决方案1】:

    我发现这个问题是由babel-loaderbabel-core的版本引起的。

    package.json 中声明了依赖项^5.3.3,因此它不会更新到6.x。将其更改为&gt;=5.3.3^6.0.0

    ^ 表示升级子版本不升级主版本。

    【讨论】:

    • 我刚刚看到这个,可能是因为5.4.0被列为最新版本,当我没有指定我想要的版本时安装的。当我安装 ^6.1.0 时它工作了
    【解决方案2】:

    确保您的 node_modules 中确实有这些预设库。

    我有类似但略有不同的错误消息。原因是我试图为 babel 使用 react 预设,但我的 node_modules 中缺少 babel-react-preset。最终结果是 babel 试图使用 react 库的内容作为预设。

    ERROR in ./ui/js/myproject.js
    Module build failed: ReferenceError: [BABEL] /home/jsyrjala/myproject/ui/js/myproject.js: Unknown option: /home/jsyrjala/myproject/node_modules/react/react.js.Children
        at Logger.error (/home/jsyrjala/myproject/node_modules/babel-core/lib/transformation/file/logger.js:43:11)
        at OptionManager.mergeOptions (/home/jsyrjala/myproject/node_modules/babel-core/lib/transformation/file/options/option-manager.js:270:18)
        at OptionManager.mergePresets (/home/jsyrjala/myproject/node_modules/babel-core/lib/transformation/file/options/option-manager.js:333:16)
        at OptionManager.mergeOptions (/home/jsyrjala/myproject/node_modules/babel
    

    【讨论】:

    • 不幸的是,我在node_modules 中有预设包。我可以运行babel --presets es2015 src -d lib,一切都很好。该错误仅在我运行 webpack 时出现
    【解决方案3】:

    我可以使用babel src --out-dir lib,但不能使用npm run XXX。我在我的机器上全局安装了 Babel-cli@6.18.0 CLI,在我本地安装 babel-cli@ 项目后,它可以与 npm run 一起使用。

    【讨论】:

      【解决方案4】:

      我在尝试构建 preact 时遇到了这个错误。原来我在父目录中有一个.babelrc 文件正在干扰;删除后问题就消失了。

      【讨论】:

        【解决方案5】:

        在像我这样的某些情况下,我在全局范围内安装了 babel,这会引发相同的错误。您可以先卸载 babel,然后将 babel-cli ^6.26.0 作为依赖项的一部分安装,然后尝试再次运行命令 npm start

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-03-29
          • 2021-01-17
          • 2012-08-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多