Javascript 将库包合并到单节点包中
我在几个项目中一次又一次地使用很少的库,我想在项目中强制使用特定的版本 项目1Javascript 将库包合并到单节点包中,javascript,reactjs,npm,Javascript,Reactjs,Npm,我在几个项目中一次又一次地使用很少的库,我想在项目中强制使用特定的版本 项目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": "proj
{
"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_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"
}
}
对于任何项目,我都希望将上面的所有包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服务器来承载你的包,或者你可以把它放在NPMJ上
将以下行添加到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
有关更多信息,请参阅有关发布包的文档:如果要将这些包放在一个包中,则需要以某种方式在此包中公开这些库:
import { React, BrowserHistory, ReactDOM } from 'all-libs';
但我想如果这真的有意义的话。请注意,所有成熟的库,如
createreact-app
和nextjs
都要求您自己安装特定的版本。您的回答很有趣。从来都不知道我们能做这样的事。我发布了一个你建议的包()。如何实际导入React并在项目中使用它?我尝试了从'core js libs'导入React,import{React}从'core js libs``导入{React}以及所有这样的组合`在npm I core js libs
之后,您以与之前相同的方式导入它。react软件包是作为软件包中的依赖项安装的,可以作为项目中的正常依赖项使用。这是我以前尝试过的方法。谢谢你。被接受的方法要容易得多