我在项目中使用了react,并且语法全部按照es6的写法,通过通过webpack打包和babel编译,生成浏览器中加载的打包后js文件。
以这样方式生成的js,在业务逻辑执行的过程中并没有任何问题,但是打开浏览器console,在其中声明任何变量时候都会报错,内容如下:
Uncaught TypeError: Cannot assign to read only property 'toString' of function 'function bound(var_args)
{
return InjectedScriptHost.callFunction(func, thisObject, concat(args, sl...<omitted>... }'
我的webpack.config如下:
module: {
loaders: [
{
test: /\.react\.js$/,
loader: 'babel',
exclude: /node_modules/
}
]
},
plugins: [
new webpack.DefinePlugin({
"process.env": {
NODE_ENV: JSON.stringify("production")
}
})
]
有人遇到过类似的问题吗,我使用的版本如下:
babel:6.5.2
react:0.14.5
webpack:1.12.14
出现这种问题的原因是因为严格模式(
'use strict';
)下, 对JavaScript原生类型的prototype进行修改会报错, 报错提示修改了function bound(var_args)
的toString