【问题标题】:How to use old packages in NodeJS 18?如何在 NodeJS 18 中使用旧包?
【发布时间】: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


    【解决方案1】:

    您实际上可以将其设置为 commonjs 而不是 package.json 中的模块

    只需执行以下操作即可

    import ipRangeCheck from 'ip-range-check'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-15
      • 1970-01-01
      • 2021-05-21
      • 2022-12-17
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      相关资源
      最近更新 更多