IE11 错误 "SCRIPT 1028 Expected identifier, string or number"

Error "SCRIPT 1028 Expected identifier, string or number" with IE11

我正在使用 Browserify 转译我的 JS 代码,以确保最终代码与大多数浏览器兼容,并且一切都与 ChromeFirefox.

但是我正在使用 IE11 似乎不喜欢的包 (dot-prop),因为某些函数的名称如 get get(obj, path, value) (https://github.com/sindresorhus/dot-prop/blob/master/index.js) 并生成经典错误:

SCRIPT 1028 Expected identifier, string or number

然而我正在使用一大堆转译工具:

browserify --extension=.jsx --transform [babelify --presets=es2015,stage-2,react --plugins=[babel-plugin-transform-es3-member-expression-literals,babel-plugin-transform-es3-property-literals]] --transform [es3ify] GUI/index.jsx --outfile dist/GUI/bundle.js

但据我所知,这些工具认为代码是有效的,这确实适用于大多数浏览器。

我可能缺少一个转译组件,它可能会将 get(...) 转换为 "get": function(...)

我是不是漏掉了什么?

如果问题是真实的,可以用这样的组件解决吗?

或者我应该自己修复代码,如果是的话,最好的方法是什么?

问题更微妙:因为 dot-prop 是存储在 node_modules 中的依赖项,默认情况下它会被 Browserify[ 忽略=36=] 因此不会通过 Babelify[=36= 传递给 Babel ] 用于转译。

在我找到一种让 Browerify 仅处理这种依赖关系的干净方法之前,我找到了一个简单的解决方法:预生成依赖关系的转译版本

我的 package.json:

中有一个专用的 NPM 脚本
"scripts": {
    "precompile": "babel node_modules/dot-prop/index.js --out-file precompiled/dot-prop.js",

并且我引用了生成的转译模块来代替原始模块。

例如在 someModule.js:

const dotProp = require("../precompiled/dot-prop");

希望它能对其他人有所帮助。 :-)