为什么babel-loader可能会忽略.babelrc?

时间:2016-12-27 17:58:45

标签: webpack babeljs create-react-app

我使用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 loader配置:

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

2 个答案:

答案 0 :(得分:1)

它会忽略您的自定义babelrc。你要么......

1)如你所提到的那样在webpack配置中提供它们

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

进行弹出

3)使用像this one

这样的create-react-app分叉

create-react-app故意抽象出配置babel的过程。毕竟,它的目标是消除为第一次做出反应或者希望快速入门的人们设置项目的头痛。配置babel是头痛的一个重要部分。因此,它不会让你配置babel。

但是,它确实提供了正确弹出的能力。有关此问题的详细讨论,请参阅this github issue

答案 1 :(得分:0)

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