我在几个项目中一次又一次地使用几个库,我想在项目中强制执行特定版本。
项目 1
{
"name": "project_1",
"version": "0.1.0",
"dependencies": {
"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-router": "^4.2.0",
"react-router-dom": "^4.2.2"
}
}
项目 2
{
"name": "project_2",
"version": "0.1.0",
"dependencies": {
"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-router": "^4.2.0",
"react-router-dom": "^4.2.2"
}
}
对于任何项目,我都希望将所有包放在 react
、react-dom
、react-router
和 react 之上-route-dom
到单个节点包 (all-libs
),如下所示。通过这种方式,我可以卡住所有项目中的版本。
任何项目
{
"name": "project_1",
"version": "0.1.0",
"dependencies": {
"all-libs": "0.0.1"
}
}
采用这种方法的原因:
- 集中版本升级以避免版本兼容性问题。
我的问题是如何创建这个包(all-libs
)?
最佳答案
您可以托管自己的 npm 包,将这些包作为依赖项。你可以设置一个自己的 nexus 服务器来托管你的包,或者你可以把它放在 npmjs 上。
将此行添加到您的 package.json 中:
"name": "all-libs",
"version": "0.0.1",
"description": "My Libs for every project",
"author": "Me",
"license": "MIT",
"engines": {
"node": ">=8.9.3"
},
"publishConfig": {
"registry": "http://myRegistry.com"
},
"devDependencies": {},
"dependencies": {
"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-router": "^4.2.0",
"react-router-dom": "^4.2.2"
}
然后您可以像这样通过 NPM 发布它:npm publish
。
有关更多信息,请参阅有关发布包的文档:https://docs.npmjs.com/cli/publish
关于javascript - 将库包合并为单个节点包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50150352/