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

Node v14环境下如何同时使用import与require导入依赖?

解决方案

方案1:全量使用ES模块导入(优先选择)

pg-promise原生支持ES模块导入语法,直接修改PostgreSQL连接代码即可,无需保留require写法:

import pgPromise from 'pg-promise';
const pgp = pgPromise();
const db = pgp({...});

该方案和你现有rxjs的导入逻辑完全一致,无需额外修改配置,也不需要兼容两种导入语法。

方案2:手动创建require函数兼容旧代码

如果需要保留原有require写法,可使用Node.js内置的createRequire工具在ES模块环境下生成require函数:

// 文件顶部添加以下两行
import { createRequire } from 'module';
const require = createRequire(import.meta.url);

// 原有require逻辑无需修改
const pgp = require('pg-promise')();
const db = pgp({...});

注:createRequire从Node v12.2.0版本开始支持,你使用的Node v14完全兼容该特性。

方案3:混合模块模式(过渡场景使用)

如果不想全局配置package.json的"type": "module",可将使用ES模块语法的文件后缀改为.mjs,Node会自动识别这类文件为ES模块,其余普通.js文件仍可正常使用CommonJS的require语法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:30:00