【发布时间】:2022-11-23 06:11:00
【问题描述】:
NodeJS 18 (https://stackoverflow.com/a/63156878/610641) 中不再使用 Require 函数。
但是如果你使用旧的包,你会如何包含它?
就我而言,我正在尝试导入包 ip-range-check (https://www.npmjs.com/package/ip-range-check)
var ipRangeCheck = require("ip-range-check");
然后我收到一个错误:ReferenceError: require is not defined in ES module scope, 你可以改用import
然后我尝试使用导入:
import * as ipRangeCheck from 'ip-range-check'
let isCorrectIP = ipRangeCheck(remoteIp, ".../28") || ipRangeCheck(remoteIp, "...0/24");
然后我得到这个错误:TypeError: ipRangeCheck.ipRangeCheck 不是函数
我打印出 ipRangeCheck:
[Module: null prototype] { default: [Function: check_many_cidrs] }
不确定我是否理解它的含义。这是否意味着函数 check_many_cidrs 可用作 ipRangeCheck 函数?
我发现了一些信息,我必须从 package.json 中更改/删除类型标签。试过了,没有运气。
导入看起来很好(根据文档https://nodejs.dev/en/api/v18/esm/)。
但可以肯定的是,我在这里做错了,或者旧模块不适用于新的 nodejs 版本?我将不胜感激任何信息/想法。
【问题讨论】:
标签: node.js