javascript - 未捕获的语法错误 : Invalid or unexpected token 

标签 javascript webpack webpack-2

我正在尝试将我的项目升级到 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/

相关文章:

javascript - 无法通过插件访问Vue.js全局函数

javascript - Opera 中的 SetInterval 导致选择闪烁

javascript - 禁用水平滚动 Android

javascript - 在 webpack 2 中使用自己的模块

javascript - 如何使用 .apply 方法将输入从一个函数传递到另一个函数?

css - 找不到模块 : Error: Can't resolve './style.css' in Directory?

javascript - webpack 2 将 webworker 公开为全局

selenium-webdriver - vue-cli3 + Electron + chromedriver + selenium-webdriver找不到元素

webpack-dev-server - 在 webpack2 中使用 webpack-dev-server 设置在浏览器中自动打开的 url

javascript - AngularJS 1.x 应用程序的 webpack 2 的最佳 webpack.config?