Webpack Babel - 关于.babelrc

mta*_*ula 7 reactjs webpack babeljs

嗨只是想知道是否有任何理由让.babelrc文件存储预设而不是在webpack.config文件中有预设(除了能够在另一个项目中重复使用babelrc文件).我有一个使用.babelrc文件正常工作的应用程序,如下所示:

{
  "presets": ["es2015", "stage-0","react"]
}
Run Code Online (Sandbox Code Playgroud)

然后我将应用程序移动到另一个没有.babelrc文件的webpack结构:

//webpack.config.js
 module: {
    loaders: [
      {
        test: /(\.js|\.jsx)$/,
        exclude: /(node_modules)/,
        loader: 'babel',
        query: { presets: ['es2015', 'stage-0', 'react'] }
      },
Run Code Online (Sandbox Code Playgroud)

奇怪的是,应用程序现在停止处理我的server.js文件中解析jsx和'import'关键字等问题.它只有在我添加回babelrc文件时才有效.任何人都可以解释为什么它只适用于babelrc文件?

Shu*_*tri 0

将您的加载程序更改为babel-loader您的webpack.config.js,在此之前您需要使用以下命令安装它们

npm install babel-loader babel-core babel-preset-es2015 --save-dev
Run Code Online (Sandbox Code Playgroud)

还要确保你已经安装了babel-preset-react

命令

webpack.config.js

 module: {
    loaders: [
      {
        test: /\.js?$/,
        exclude: /(node_modules|bower_components)/,
        loader: 'babel-loader',
        query: {
          presets: ['react', 'es2015', 'stage-0'],
          plugins: ['react-html-attrs', 'transform-decorators-legacy'], 
        }
      }
    ]
  },
Run Code Online (Sandbox Code Playgroud)