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

Node.js报错SyntaxError: Unexpected token import的解决求助

解决Node.js运行时SyntaxError: Unexpected token import的问题

这个错误很常见——Node.js默认不支持ES6的import/export模块语法,它原生使用的是CommonJS规范(require/module.exports)。而你用webpack-dev-server能正常运行,是因为webpack在构建流程中已经把ES6模块语法转译成了环境可识别的代码。

下面给你几种针对性的解决方案:

方案1:让Node.js直接支持ES模块

如果你确实需要直接用node app.js运行你的文件,可以通过以下两种方式开启ES模块支持:

  • 方式A:修改文件后缀或配置package.json
    • 把你的app.js后缀改成.mjs,然后运行node app.mjs;
    • 或者在项目根目录的package.json中添加"type": "module"字段,这样所有.js文件都会被Node当作ES模块处理,之后直接运行node app.js即可。
  • 方式B:用Babel转译ES6代码
    安装必要的Babel依赖:
    npm install --save-dev @babel/core @babel/node @babel/preset-env
    
    然后在项目根目录创建.babelrc配置文件:
    {
      "presets": ["@babel/preset-env"]
    }
    
    最后用Babel Node来运行你的文件:
    npx babel-node app.js
    

方案2:继续使用Webpack的工作流

既然你的项目原本通过webpack-dev-server能正常运行和构建,那其实更推荐你沿用这个流程:

  • 开发阶段:继续执行node_modules/.bin/webpack-dev-server启动开发服务器,它会帮你处理模块转译、热重载等工作;
  • 生产构建:运行webpack打包命令(比如npx webpack --mode production),生成打包后的文件(通常在dist目录下),之后可以用node dist/[你的打包文件名].js运行生产环境代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:43:28