我正在尝试将我的项目升级到 webpack 版本 2。
在我完成所有 typescript 编译和 webpack 构建后,我尝试运行我的网站。我最终收到此错误:
Uncaught SyntaxError: Invalid or unexpected token
这位于我的 webpack bundle.js
文件中。我去该文件查看它是什么并找到了这些字符:

光标位于 ï 和 » 之间。
这些字符位于我下载的一些 npm 包的开头。 (我用 yarn
下载它们。)
搜索bundle.js,我可以看到这些字符在我的包中出现过几次:
- 在 jquery-color 的开头
- 在 jquery-inputmask 的开头
- 在 jquery-mask 的开头(是的,我有两个掩码..)
- 还有一个我不认识的问题(关于 getSignedRequest)。
这些奇怪的符号是如何到达那里的,我该如何摆脱它们?
最佳答案
我添加了 webpack-utf8-bom
插件,它为我解决了这个问题。
这是插件的 npm 页面:https://www.npmjs.com/package/webpack-utf8-bom
这是该页面的用法:
// import plugin
var BomPlugin = require('webpack-utf8-bom');
module.exports = {
...
plugins: [
// Add plugin in plugins list
// true for adding bom
// false for removing bom
new BomPlugin(true)
],
...
};
关键部分是它与我的预期相反。我本以为 false 会消除 BOM 字符,但实际上使用 true 消除了错误。
new BomPlugin(true)
当我查看时,字符已被红点取代。我的猜测是插件正确地格式化了它们,这样它们就不会混淆浏览器。
关于javascript - 未捕获的语法错误 : Invalid or unexpected token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43130088/