You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Node.js中跨文件导入JS类报错:SyntaxError: Cannot use import statement outside a module 解决方法

解决Node.js中ES模块import/export语法报错问题

嘿,这个问题我之前也踩过坑!本质是Node.js默认采用CommonJS模块系统,它没法直接识别你代码里的ES模块import/export语法,所以才弹出这个警告和错误。下面给你两种靠谱的解决办法:

方法一:给项目设置ES模块模式(推荐)

这是最方便的全局解决方式:

  1. 如果你的项目还没有package.json,打开终端运行 npm init -y 快速生成一个。
  2. 打开package.json,添加一行"type": "module",示例如下:
{
  "name": "your-project",
  "version": "1.0.0",
  "type": "module",
  "main": "temp1.js"
}
  1. 保存文件后,重新运行你的代码,Node.js就会把所有.js文件都当作ES模块处理,importexport就能正常工作了。

方法二:修改文件后缀为.mjs

如果你不想改动package.json,可以给使用ES模块语法的文件换个后缀:

  • 把你的模块文件temp.js改成temp.mjs
  • 把导入模块的文件temp1.js改成temp1.mjs
  • 运行时执行 node temp1.mjs,Node.js会自动识别.mjs后缀的文件为ES模块。

另外提个小建议:JavaScript里类名首字母大写是约定俗成的编码规范,比如把hello改成Helloh1改成H1,这样代码可读性会更好哦!

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

火山引擎 最新活动