【问题标题】:Why babel-loader may ignore .babelrc?为什么 babel-loader 可能会忽略 .babelrc?
【发布时间】:2016-12-27 17:58:45
【问题描述】:

我使用 create-react-app 引导了一个应用程序,然后将其弹出,现在进一步配置它。但是我有一个问题,webpack 不尊重.babelrc 中声明的预设?

我有这个错误,因为“缺少”stage-1 预设。

语法错误:缺少类属性转换

同时,如果我将 loader 替换为字符串表示法,例如 babel?presets[]=react,presets[]=es2015,presets[]=stage-1,则效果很好。

有什么办法可以解决?

.babelrc:

{
  "presets": [
    "es2015",
    "react",
    "stage-1"
  ],
  "plugins": [
    "transform-flow-strip-types",
    "transform-react-remove-prop-types"
  ]
}

Webpack babel 加载器配置:

{
    test: /\.(js|jsx)$/,
    include: paths.appSrc,
    loader: 'babel',
}

【问题讨论】:

    标签: webpack babeljs create-react-app


    【解决方案1】:

    它将忽略您的自定义babelrc。你必须...

    1) 正如你提到的,在 webpack 配置中提供它们

    2) 通过运行npm run eject 弹出并使用自定义babelrc

    3) 使用create-react-app 的分支,例如this one

    create-react-app 有意抽象出配置 babel 的过程。毕竟,它的目标是消除为第一次做出反应或只是希望快速开始的人们设置项目的麻烦。配置 babel 是令人头疼的一个重要部分。因此,它不允许您配置 babel。

    然而,正是出于这个原因,它确实提供了弹出功能。有关此问题的更多讨论,请参阅 this github issue

    【讨论】:

    • 其实我已经按照你在(2)中的建议将它弹出了。但它仍然忽略项目根目录中的 .babelrc。
    • 很遗憾,但在“弹出”版本的 webpack 配置中没有 such line
    • 是的,我刚刚意识到并删除了编辑。我难住了。祝你好运。
    【解决方案2】:

    transform-class-properties 插件添加到.babelrc 有帮助。所以装载机本身一切都很好。但是仍然没有答案为什么 stage-1 预设在 .babelrc 数组中被忽略,而使用字符串表示法它可以工作。希望,无论如何它对某人有帮助。

    【讨论】:

    • 能否解释一下解决步骤?
    猜你喜欢
    • 2014-10-02
    • 1970-01-01
    • 2021-04-30
    • 2018-09-12
    • 2018-06-19
    • 2018-09-06
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多