Node.js中跨文件导入JS类报错:SyntaxError: Cannot use import statement outside a module 解决方法
解决Node.js中ES模块import/export语法报错问题
嘿,这个问题我之前也踩过坑!本质是Node.js默认采用CommonJS模块系统,它没法直接识别你代码里的ES模块import/export语法,所以才弹出这个警告和错误。下面给你两种靠谱的解决办法:
方法一:给项目设置ES模块模式(推荐)
这是最方便的全局解决方式:
- 如果你的项目还没有
package.json,打开终端运行npm init -y快速生成一个。 - 打开
package.json,添加一行"type": "module",示例如下:
{ "name": "your-project", "version": "1.0.0", "type": "module", "main": "temp1.js" }
- 保存文件后,重新运行你的代码,Node.js就会把所有
.js文件都当作ES模块处理,import和export就能正常工作了。
方法二:修改文件后缀为.mjs
如果你不想改动package.json,可以给使用ES模块语法的文件换个后缀:
- 把你的模块文件
temp.js改成temp.mjs - 把导入模块的文件
temp1.js改成temp1.mjs - 运行时执行
node temp1.mjs,Node.js会自动识别.mjs后缀的文件为ES模块。
另外提个小建议:JavaScript里类名首字母大写是约定俗成的编码规范,比如把hello改成Hello、h1改成H1,这样代码可读性会更好哦!
内容的提问来源于stack exchange,提问作者meruvu likith




