Node.js 18中如何使用旧CommonJS包?
Node.js 18 引入旧版CommonJS包的问题求助
Node.js 18 已不再默认支持require函数,我现在需要使用旧版本的CommonJS包,却遇到了引入问题,具体情况如下:
尝试用
require引入ip-range-check包:var ipRangeCheck = require("ip-range-check");触发错误:ReferenceError: require is not defined in ES module scope, you can use import instead
改用ES模块的
import语法:import * as ipRangeCheck from 'ip-range-check' let isCorrectIP = ipRangeCheck(remoteIp, ".../28") || ipRangeCheck(remoteIp, "...0/24");触发错误:TypeError: ipRangeCheck.ipRangeCheck is not a function
打印
ipRangeCheck的结果为:[Module: null prototype] { default: [Function: check_many_cidrs] },我不太理解这个输出的含义,是不是意味着check_many_cidrs函数就是我要调用的ipRangeCheck?
我已经尝试修改或移除package.json中的type字段,但没有效果。对照Node.js 18的ESM文档,我的import语法看起来没问题,但显然哪里出错了。难道旧的CommonJS模块无法兼容新版本的Node.js?希望能得到解决建议或方法。
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

