vue 出现Uncaught SyntaxError: Unexpected token 解决方案

最近在作vue项目时,须要引入一个第三方的js文件,在index.html中经过如下方式引入JS文件编译后,就报了这个问题。javascript

根据广大的网页的思路,致使这一现象的缘由可能有如下几种:html

缘由一.引用文件的位置不正确vue

js文件放在static文件夹下和放在assets文件夹下的引用方式是不同的。简而言之:java

   1.assets用来放置样式、静态图片,只要src下面的组件中用到的资源就放在assets中。webpack

   2.static用来放没有npm包的第三方插件,字体文件。es6

   3.assets与components同级  components下的.vue引用静态文件时,相对路径为 ../assets/xxx/......web

   说明:若是js文件中包含es6语法的话,就不能够放在static文件夹下,由于static文件夹默认是不会被打包和编译的,因此引用的时候会抛异常。vue-cli

不一样之处能够查看这篇博客:https://www.cnblogs.com/huangqiao/p/7798887.htmlnpm

解决方法浏览器

将src下的文件放到static下面去,在indec.html中的引用路径采用相对路径的表现形式,“./static/xxx/xxxxx.js”

缘由二:配置信息不正确

若是你的js文件中包含es6语法,但没有配置采用babel-loader来解析和转化为es5语法的话,也会报这个错误。

解决方法:

须要在webpack.config.js里配置loader,vue-cli是不会帮忙配置的。

而后从新编译项目,就能够解决,固然这个也没有解决个人问题。

缘由三:script的引入类型不对

解决办法:将type="text/javascript"改成type="text/babel"

我尝试了,不会再报以上错误,可是我引入的JS文件中的内容却没有编译成功,里面的方法依然没法使用。

缘由四.浏览器缓存问题

有时候多是因为浏览器有缓存,一直没法加载最新的内容,因此当你改了之后,依然没有生效。这种状况下,能够从新清除浏览器缓存,而后从新运行项目,就能够解决。

 

缘由五.配置问题

1.在配置文件webpack.dev.config.js中,如存在如下内容,直接注释掉,这两部分在文件中不是连在一块儿的,你们注意观察。

const CopyWebpackPlugin = require('copy-webpack-plugin')

 new CopyWebpackPlugin([
      {
        from: path.resolve(__dirname, '../static'),
        to: config.dev.assetsSubDirectory,
        ignore: ['.*']
      }
    ])

2.而后,将这个变量的值改成,而后从新运行,就对啦。若是以上方法都不能解决的话,那我也无能为力了,这是我今天试过的全部方法,祝你们开发顺利。

contentBase:false