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

运行JS文件时出现ES模块导入错误,请求技术协助

解决Node.js中import语句无法使用的问题

错误原因

你碰到的SyntaxError: Cannot use import statement outside a module,是因为Node.js默认采用CommonJS模块规范,而你使用了ES模块的import/export语法,必须明确告知Node.js当前文件是ES模块才能正常解析。


场景1:React结合HTML的项目

你的React项目不需要用Node.js运行——因为你已经通过CDN引入了React、ReactDOM和Babel,代码是在浏览器环境中执行的,直接运行HTML文件即可:

  1. 找到你的HTML文件,双击打开,或者用VSCode的Live Server插件启动(右键HTML文件选"Open with Live Server")
  2. 不要点击VSCode的运行按钮(这个按钮是用Node.js执行JS文件,而Node.js没有浏览器的DOM环境,也不会处理你依赖的Babel转译JSX逻辑,直接跑会报错)

你的React代码本身没问题,只要在浏览器里打开HTML就能看到Hello, everyone!的效果。


场景2:使用import/export的模块项目

如果要在Node.js里运行你的player模块代码,有两种简单的解决方法:

方法1:配置package.json启用ES模块

  1. 在项目根目录新建(或修改)package.json文件,添加"type": "module":
{
  "type": "module"
}
  1. 修复代码里的两个错误:
    • 把index.js第一行的多余true删掉,并且导入路径要加./(ES模块要求相对路径):
      import { player } from './player.js';
      
    • 把player.js里的thiscountry改成this.country(拼写错误):
      console.log(`${this.name} was born in ${this.country}`)
      
  2. 重新用VSCode运行按钮执行index.js,就能正常输出结果。

方法2:修改文件扩展名

  1. 把index.js改名为index.mjs,player.js改名为player.mjs
  2. 同样修复代码里的true和thiscountry错误,导入路径改成./player.mjs
  3. 运行node index.mjs即可执行脚本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:43:07