Angular App中的语法错误:意外的令牌<

Ger*_*ona 37 angular-cli angular

我有一个Angular应用程序,它在我的本地和生产环境中完美运行.经过我做的一个微小的改变,我在本地运行应用程序,它工作正常..然后我构建了项目并将dist文件夹复制到Web服务器.问题是,当我尝试访问该应用时,我在Chrome Inspector中收到以下错误:

Uncaught SyntaxError: Unexpected token < inline.1a152b6….bundle.js:1
Uncaught SyntaxError: Unexpected token < polyfills.1553fdd….bundle.js:1
Uncaught SyntaxError: Unexpected token < vendor.94d0113….bundle.js:1
Uncaught SyntaxError: Unexpected token < main.d6f56a1….bundle.js:1
Run Code Online (Sandbox Code Playgroud)

所以,它似乎是一个错位的角色,但在我的本地环境中应用程序工作正常我没有在控制台上收到任何警告或错误消息..

Tho*_*mas 23

这很可能是404页面或重定向到提供常规html而不是预期的JavaScript文件的页面的结果.(HTML页面以<html>或a 开头<!DOCTYPE...>)确保您已正确上载文件并正确访问页面.您可以通过浏览器手动访问URL进行验证,或者查看浏览器开发工具的网络选项卡以检查响应.

  • 我想我刚刚解决了..我必须正确修改索引文件中的脚本路径和基本href属性.所以,而不是`base href ="myApp"`,我改为`href ="/ myApp"`和脚本路径相同的东西 (3认同)
  • 如果我查看浏览器的网络选项卡,我看不到 index.html 文件。但是我仍然可以看到 *.js* 文件,但如果我单击这些文件中的任何一个,索引代码将显示在预览选项卡..@Thomas (2认同)
  • @GerardoTarragona 在我的index.html 中已经写了`&lt;base href="/"&gt;`。其他可能的问题是什么? (2认同)

小智 10

我遇到过同样的问题:

  1. 我运行了命令ng build --aot --prod
  2. 所有编译都没有错误
  3. 我删除了服务器上的所有文件,并通过FTP(FileZilla)将其全部复制到Windows Azure服务器
  4. 有时我会收到错误"Unexpected token <"而其他时候没有错误

昨天我注意到服务器上缺少主[hash] .js,并且Filezilla没有给我复制它的错误.我然后尝试只复制该文件.它没有用.当我从文件名中删除哈希部分时,它复制没有问题.

工作一圆

运行: ng build --aot --prod --output-hashing none

哪个有效.

因此,Filezilla或Windows Server不允许具有特定长度的文件名,或者不喜欢某些哈希值.

  • 删除哈希是缓存的大问题 (2认同)

mes*_*ati 6

问题出在文件<base href="/">的部分index.html,似乎 Angular 会在内部生成构建文件dist/{yourProjectName}/,但index.html文件会经过dist/for 构建文件。现在你有2个选择:

  1. <base href="/">将文件的部分更改index.html为,但现在命令<base href="/dist/{yourProjectName}/">之间存在不一致,并且您无法通过. 所以你每次都要改变那部分!ng serveng buildng serve

  2. 我推荐的第二种方法是更改​​项目的输出路径!转到angular.json您的项目文件并将 更改为"outputPath": "dist/{yourProjcetName}",并且"outputPath": "dist/"不要更改base href


小智 5

使用angular with express也得到了这个错误。

我想当您构建一个有角度的项目时,该项目不仅存储在“ dist / the-app ”中,而且还存储在“ dist ”中,因此这解决了我的快递问题。

// Point static path to dist
app.use(express.static(path.join(__dirname, 'dist/the-app')));
Run Code Online (Sandbox Code Playgroud)

对我来说,此错误是由于未设置所构建应用程序的正确路径所致。