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

如何在Node.js项目中使用第三方库并解决ES6模块导入报错

问题根因

你遇到的Cannot use import statement outside a module报错本质是运行环境未将当前文件识别为ES模块,结合你提供的配置,常见触发原因如下:

  • Node.js版本过低:ES模块规范在Node.js 12.x版本中为实验性功能,14.x及以上LTS版本才实现稳定支持,版本过低会导致"type": "module"配置不生效
  • 执行方式错误:如果你直接通过浏览器打开app.mjs文件,浏览器默认将JS文件识别为普通脚本而非模块,会触发该报错,Node.js脚本必须通过node命令执行
  • 入口文件后缀异常:Windows系统默认隐藏已知文件后缀,你可能将文件命名为了app.mjs.txt,实际后缀为.txt而非.mjs,导致模块识别失败
  • 第三方依赖冲突:你安装的http包是官方废弃的占位包,并非Node.js内置http模块,异常依赖可能影响模块加载逻辑
解决步骤
  1. 执行node -v查看Node.js版本,若版本低于14.x,升级到Node.js LTS正式版即可
  2. 执行node app.mjs命令启动项目,禁止直接在浏览器中打开本地JS文件运行Node服务
  3. 开启系统文件后缀显示功能,确认入口文件实际后缀为.mjs,删除多余的隐藏后缀
  4. 删除package.json中dependencies配置项里的"http": "^0.0.1-security",执行npm install重新安装依赖,Node.js内置http模块无需手动安装第三方包
避坑规范
  • 项目确定使用ES模块规范后,统一在package.json中声明"type": "module",所有业务脚本统一使用.js后缀即可,无需额外使用.mjs后缀
  • 不要混用模块规范:配置"type": "module"的项目全程使用import/export语法,不要使用require/module.exports等CommonJS语法;未声明该配置的项目默认遵循CommonJS规范,不要使用ES模块语法
  • Node.js内置模块(http、fs、path等)可直接导入,无需通过npm安装第三方同名包
  • 初始化项目前优先确认Node.js版本符合开发要求,生产环境建议统一使用LTS版本的Node.js运行环境

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:06:03