【问题标题】:Babel + Webpack doesn't transpile ES6 [duplicate]Babel + Webpack 不会转译 ES6 [重复]
【发布时间】:2017-12-30 16:56:51
【问题描述】:

我刚刚使用 react 为 webapp 设置了环境。

setInitialStates = () => {
    this.state = {showAuthorModal: false};
};

注意:这是正确的语法!

当我尝试运行 webpack --config webpack.config.js 时会发生这种情况

这是我的 webpack.config.js。

const path = require('path');

module.exports = {
    entry: {
        component: [
            './public/javascripts/Rendering.jsx',
            './public/javascripts/CentreQuote.jsx',
            './public/javascripts/AuthorModal.jsx',
            './public/javascripts/LeftNav.jsx'
        ]
    },
    output: {
        path: path.resolve('public/javascripts'),
        filename: 'index_bundle.js'
    },
    module: {
        loaders: [
            { test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ },
            { test: /\.jsx$/, loader: 'babel-loader', exclude: /node_modules/ }
        ]
    }
}
然后我有.babelrc

{
    "presets":[
        "es2015", "react"
    ],
    "plugins": ["transform-es2015-arrow-functions"]
}

我想我缺少一些将 babelrc 链接到加载器配置的接线步骤?

【问题讨论】:

    标签: reactjs webpack ecmascript-6 babeljs


    【解决方案1】:

    将 webpack 中的“模块”替换为以下内容:

    module: {
      rules: [{
        test: /\.jsx?$/,
        loader: "babel-loader",
        options: {
          cacheDirectory: true, //false for production
          babelrc: false,
          presets: ["es2015", "react"],
          plugins: ["transform-es2015-arrow-functions"]
        }
      }]
    }
    

    我做了两件事:

    1. 在一个正则表达式测试中统一了 js/jsx 加载器
    2. 停止使用 babelrc 来指定 webpack 中的配置。

    它应该工作!试试看

    您提供的代码的主要问题是您有“加载程序”,但它应该是“规则”

    【讨论】:

    • 将 Babel 配置移动到 Webpack 配置中不会影响任何事情,并且将它们移动到一个正则表达式中并不能解决问题中的错误。
    • 我已经尝试了你的建议,但并没有解决问题。
    猜你喜欢
    • 2020-04-07
    • 1970-01-01
    • 2019-10-20
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    相关资源
    最近更新 更多