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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:15:33