在现有的 Nodejs 项目上工作时,其中一个包不在我的控制范围内,例如public-package. 当我尝试发布新版本时,我必须使用新的包名称进行部署,例如my-package.
例如,
{
...
"dependencies": {
"public-package": "1.0.123",
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
在源代码中,有很多行,例如require('public-package')
那么我如何使用我的包,在npm install不更改代码的情况下直接将其重命名为require('public-package')to require('my-package')?
例如
{
...
"dependencies": {
"public-package": "my-package@1.0.10", # <= how to make this work?
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
我可以做些什么来让它像上面的代码一样工作吗?
mih*_*hai -1
您可以尝试更改mainpackage.json 中的条目public-package(位于node_modules/public-package/package.json)
有关该条目如何工作的详细信息,请参阅节点文档中的文件夹作为模块main。该技术用于指向require模块的子文件夹,但在这种情况下,您可以对其进行调整以满足您的需求。
{
"name" : "public-package",
"main" : "./public-package.js"
}
Run Code Online (Sandbox Code Playgroud)
将其更改为
{
"name" : "public-package",
"main" : "/path/to/my-package.js"
}
Run Code Online (Sandbox Code Playgroud)
现在,每次执行 a 时require('public-package'),它都会加载my-package,而无需更改源代码。
要自动更改 中的条目node_modules/public-package/package.json,您可以将自定义脚本添加到 npm 中,以在该文件中执行搜索和替换。
| 归档时间: |
|
| 查看次数: |
4599 次 |
| 最近记录: |