Webpack 构建失败,使用 es6 react.js

IT技术 javascript node.js reactjs npm webpack
2021-05-17 05:24:11

我使用 React.js、Webpack、...props 语法、箭头函数。

当我运行“npm run build”时,出现此错误:

来自 UglifyJs SyntaxError 的 bundle.js 中的错误:意外的标记 punc «(»,预期的 punc «:» [bundle.js:77854,15]

这是我的 debug.log

在此处输入图片说明

我的 webpack.config

在此处输入图片说明

如何成功运行构建?


我找到了导致错误的行,这里是:

import { BootstrapTable, TableHeaderColumn } from 'react-bootstrap-table';

我不知道为什么。:(

没有它,我所有的 ES6 语法都可以正常工作和编译,没有任何错误。

任何帮助请

3个回答

如果您使用具有 ES6 语法的 npm 依赖项,则会发生此错误。Preact 也发生在我身上(参见https://github.com/developit/preact-compat/issues/155)。

您可以通过将依赖项显式添加到通过 babel 加载的module来修复它,如下所示:

module: {
    rules: [
        {
            test: /\.js$/,
            loader: 'babel-loader',
            include: [
                srcPath,
                // we need to include preact-compat
                // otherwise uglify will fail
                // @see https://github.com/developit/preact-compat/issues/155
                path.resolve(__dirname, '../../../node_modules/preact-compat/src')
            ]
        }
    ]
}

bundle.js第 77854 行的第 15 个字符中,对象属性名称后面有一个括号,而不是 :。必须有类似的东西:

{property () {}} 

代替

{property : function () {}} 

编辑(感谢@handoncloud):第一个是有效的 ES6,是第二个的简写,在 ES5 中是等价的。

问题是,构建并不完全支持 ES6。

找到了。

React-Bootstrap-Table 有一个名为 React-Modal 的依赖项。

我安装了 React Modalnpm install react-modal没有--save--save-dev所以 React-Modal 没有列在我的package.json.

现在一切正常。

解决方案npm install react-modal --save