问题:最近做vue项目时,当我访问二级路由的时候,就会报Uncaught SyntaxError: Unexpected token ‘<‘错误,而我访问一级路由不会报错。翻了网上很多资料,都无法解决。

一、public下的index.html没有引入其他外部js文件。

解决方法:清除浏览器缓存。

二、 public下的index.html引入其他外部js文件。

原因一.引用文件的位置不正确

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

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

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

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

   说明:如果js文件中包含es6语法的话,就不可以放在static文件夹下,因为static文件夹默认是不会被打包和编译的,所以引用的时候会抛异常。

不同之处可以查看这篇博客:https://www.cnblogs.com/huangqiao/p/7798887.html

解决方法:

将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文件中的内容却没有编译成功,里面的方法依然无法使用。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐