gpt4 book ai didi

javascript - 覆盖或重载 node_module 名称路径

转载 作者:行者123 更新时间:2023-12-03 12:18:58 25 4
gpt4 key购买 nike

假设我安装了一个名为 magicalModule 的 node_module,并且我已经通过 npm i magicalModule 安装了它。

我通过 const magic = require('magicalModule') 将它导入到我的代码中。

有没有办法让我覆盖该特定路径,以便我可以改用我自己的模块?

例如,我有一个我想使用的模块的修改版本,而不是已安装的包。也许在 package.json 中放置一些东西或类似的东西:

dependencies:{
Alias:{
'magicalModule': process.env.local ? './myPath' : 'magicalModule'
}
}

类似上面的东西......

我知道有一个模块叫Module-alias但我不确定它是否适合我的用例。

至于为什么我需要做这样的事情是因为有一个 NPM 包在多个文件中使用很多,我想用我目前正在开发的另一个 NPM 包替换它。想在发布 NPM 包之前在本地测试它...

最佳答案

如果您需要动态导入,那么将 require 放在 if 条件中

let myModule = require(process.env.local ? './myPath' : 'myModule'); // make sure there is index.js inside

不能在 package.json 中执行此操作,因为该文件是静态的。但是,如果您可以以某种方式编辑包 json,则可以添加本地依赖项,例如

"dependencies": {
"bar": "file:./myPath" // package.json is read inside of ./myPath
}

关于javascript - 覆盖或重载 node_module 名称路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66467883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com