如何在使用webpack捆绑React时禁用严格模式

u5i3ibmn  于 2023-08-06  发布在  Webpack
关注(0)|答案(4)|浏览(127)

你好,我坚持与我的应用程序,我的应用程序在所有其他浏览器工作正常,而不是在IE它的抛出错误

0x800a0416 - JavaScript runtime error: Multiple definitions of a property not allowed in strict mode

字符串
我在webpack.config中实现了loader

module: {
    loaders: [{
        test: /\.js?$/,
        exclude: /(node_modules|bower_components)/,
        loaders: ['babel'],
        include: path.join(__dirname, 'scripts')
    }]
}


我的Package.json脚本包含"build": "./node_modules/.bin/webpack --config webpack.config.production.js --progress --profile --colors",,用于构建包
如果我将显式地找到use strict并将其从bundle中删除,那么它可以正常工作,那么我如何在使用webpack创建bundle时删除该严格模式

gwo2fgha

gwo2fgha1#

如果你看到这个错误,那么很可能你在代码库的某个地方,你在同一个对象上声明了多个属性。关掉警铃只是解决了问题。
我发现如果我在JSX中声明重复的属性,就会弹出这个错误。当执行<MyComponent className="foo" onClick={onClick} className="foobar" />或意外复制其他属性时。
查找并修复实际错误,而不仅仅是隐藏错误消息。IE应该告诉你它发生在哪一行,它不应该太难看看有什么,并找出哪个组件有问题。

mqkwyuun

mqkwyuun2#

看看这个包:https://www.npmjs.com/package/babel-plugin-transform-remove-strict-mode
我正在寻找一种方便的方法来摆脱'use strict',它似乎就是这样做的。

fgw7neuy

fgw7neuy3#

我已经在我的**.babelrc**文件中包含了blacklist选项,如

blacklist: ["useStrict"]

字符串
而且运行良好

sc4hvdpw

sc4hvdpw4#

你有几种方法来解决这个问题,底线是在.babelrc或你的webpack中设置模块为false,因为你使用webpack

  • webpack.mix.js*
module : {
        loaders : [
            {
                test: /\.js?/,
                include: APP_DIR,
                use: {
                    loader: 'babel-loader',
                    options: {
                        "presets": [
                            ['es2015', {modules: false}]
                        ],
                    }
                },
                exclude: /node_modules/
            },
        ]
    },

字符串

  • 或.babelrc*
{
    "presets": [
        [
            "@babel/preset-env",
            {
                "debug": true,
                "modules": false,
                "forceAllTransforms": true,
                "useBuiltIns": "usage"
            }
        ]
    ]
}

相关问题