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

Node.js服务启动报错:无法在模块外使用import语句

执行命令及输出

执行命令:

server>npm start

命令输出:

server@1.0.0 start
node server.js

报错信息:

(node:12504) 警告:要加载ES模块,请在package.json中设置"type": "module",或者使用.mjs扩展名。
(使用 `node --trace-warnings ...` 查看警告创建位置)
D:\TerProject\server\server.js:1
import express from 'express'
^^^^^^

语法错误:无法在模块外使用import语句
at Object.compileFunction (node:vm:352:18)
at wrapSafe (node:internal/modules/cjs/loader:1026:15)
at Module._compile (node:internal/modules/cjs/loader:1061:27)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47

Node.js v17.3.0

解决方法

这个问题是因为Node.js默认将.js文件识别为CommonJS模块,但你代码里用了ES模块的import语法,两种快速解决方式:

  • 修改package.json
    在项目根目录的package.json中添加"type": "module"字段,示例:
{
  "name": "server",
  "version": "1.0.0",
  "type": "module",
  "scripts": {
    "start": "node server.js"
  }
}

保存后重新运行npm start即可。

  • 修改文件扩展名
    把server.js重命名为server.mjs,同时更新package.json里的启动命令:
{
  "scripts": {
    "start": "node server.mjs"
  }
}

再执行npm start就能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 13:17:02