浏览器中的Vue.js意外令牌,但是npm运行构建没有错误

时间:2018-02-21 21:10:11

标签: vue.js

我正在使用其他人启动的vue.js项目,我将它放在生产服务器上。 npm run build编译没有错误。但是当我尝试在浏览器中运行项目时,我得到了一个

Uncaught SyntaxError: unexpected token <

这是index.html

<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>tst-apps-suite</title><base href=/ ><link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700,800" rel=stylesheet><link href="https://fonts.googleapis.com/css?family=Dosis:200,400,600,700,800" rel=stylesheet><link href=https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css rel=stylesheet><link href=/static/css/app.d79e04c40fa9145fe427147ef17b4576.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.2ae2e69a05c33dfc65f8.js></script><script type=text/javascript src=/static/js/vendor.bfe581b46b720086662f.js></script><script type=text/javascript src=/static/js/app.19024fb1db555dd8417b.js></script></body></html>

我得到了所有3个.js资产文件。

请求上的服务器控制台输出。看起来文件正在返回:

GET /static/css/app.d79e04c40fa9145fe427147ef17b4576.css 200 1.580 ms - 820
GET /static/js/manifest.2ae2e69a05c33dfc65f8.js 200 3.095 ms - 820
GET /static/js/app.19024fb1db555dd8417b.js 200 3.157 ms - 820
GET /static/js/vendor.bfe581b46b720086662f.js 200 3.429 ms - 820

知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

在不同的选项卡上打开每个脚本的URL(或检查开发人员工具的网络选项卡),这些URL可能返回404(或其他一些错误代码)和HTML错误页面。

因此,您的代码会尝试将这些HTML错误页面解析为JavaScript代码,从而产生该错误。

它获得Uncaught SyntaxError: Unexpected token <因为它尝试将HTML内容(例如<html> ...)解析为JavaScript代码。

运行下面的代码段并在控制台上查看错误。

&#13;
&#13;
<script type=text/javascript src=https://stackoverflow.com></script>
Check the console: "Uncaught SyntaxError: Unexpected token <"
&#13;
&#13;
&#13;

答案 1 :(得分:0)

在我的情况下,这是由于the public path in my vue config正在寻找“ / mywidget /”之类的静态路径,并正在“ /mywidget/dist/1234.js”中寻找资产,这是一个问题,因为在我的部署上下文中,内置的html没有“ mywidget”文件夹,无法在其中找到js文件。

就我而言,我再次将公共路径设置为“ /”,并且有效。