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

配置type:module后使用PM2部署Node项目仍报import语句模块外使用错误

PM2部署Node项目配置"type":"module"后仍报import语法错误解决方案

报错原因

你已在package.json中配置"type": "module",但项目入口代码中同时混用了CommonJS规范的require语法和ES Module规范的import语法,且PM2缓存的旧进程未读取最新的项目配置,触发模块类型不兼容报错。

修复步骤

  • 第一步:统一所有导入语法为ES Module规范,将你现有代码中的CommonJS导入语句替换为如下写法:
import http from 'node:http';
import url from 'node:url';
import querystring from 'node:querystring';

其余代码无需改动,保持你现有import captureWebsite from 'capture-website'的写法即可。

  • 第二步:清除PM2缓存的旧进程,执行命令:
    pm2 delete 你的项目进程名/进程ID
    如果不清楚进程ID,可执行pm2 list查看所有运行中的进程。
  • 第三步:重新启动项目,直接启动可执行:
    pm2 start 你的入口文件名.js
    如果仍有报错,可添加PM2运行参数指定模块类型:
    pm2 start 你的入口文件名.js --interpreter-args="--input-type=module"
    也可以创建PM2配置文件固定启动参数,示例配置ecosystem.config.js内容如下:
export default {
  apps : [{
    name: "自定义项目名称",
    script: "./你的入口文件名.js",
    interpreter: "node",
    interpreter_args: "--input-type=module"
  }]
}

配置完成后执行pm2 start ecosystem.config.js启动即可。

注意事项

配置了"type": "module"的Node项目不允许混用require和import语法,所有模块导入统一使用import即可,Node会自动识别内置模块、第三方依赖模块的导入规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:36:03