You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 5 + Node.js 9运行服务器遇Unexpected token import错误求助

解决AGM库导致Node.js启动时的import语法错误问题

首先咱们得先搞明白为啥会出现这个错误:Node.js 9默认并不支持ES6的import语法(当时ES模块还处于实验阶段,需要特殊配置),而你看到的marker.js是AGM库的ES6源码文件,它本来应该是由Angular的构建工具(比如Webpack、Angular CLI)编译成浏览器能识别的代码,结果现在被Node.js服务器直接执行了,这就导致了语法报错。

下面是几个针对性的解决办法:

1. 检查服务器代码是否错误引入了前端AGM模块

  • 先排查你的server.js或者其他后端代码,有没有不小心require了@agm/core相关的模块。AGM是前端Angular专用库,后端Node.js根本不需要加载它,要是后端代码里误引入了,直接删掉那行代码就行。

2. 确保Angular应用已正确打包,服务器只托管打包后的静态文件

  • 如果你是用Node.js服务器来托管Angular前端应用,那必须先执行Angular的打包命令:
    ng build --prod
    
    这个命令会把Angular应用编译、打包到dist目录下。
  • 然后修改你的server.js,让它只托管dist里的静态文件,而不是直接去加载node_modules里的前端库文件。比如用Express的话,代码应该类似这样:
    const express = require('express');
    const app = express();
    // 托管dist目录下的静态文件
    app.use(express.static(__dirname + '/dist'));
    // 处理SPA路由,刷新页面不404
    app.get('*', (req, res) => {
      res.sendFile(__dirname + '/dist/index.html');
    });
    app.listen(3000, () => console.log('Server running on port 3000'));
    

3. 确认AGM版本与Angular 5兼容

Angular 5比较老,要确保你安装的AGM版本是兼容Angular 5的。你可以安装适配Angular 5-7的版本:

npm install @agm/core@1.1.0 --save

版本不兼容也可能导致一些奇怪的加载问题。

内容的提问来源于stack exchange,提问作者hagai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:32:12