我在项目中使用了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...... }'
我的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