在管理包方面,我想知道它是如何工作的,与Maven(我来自Java背景)相比。 我使用Angular 4创建了一个通用组件,这个组件将在许多项目中使用。所以,我已经将它发布到我们的nexus注册表,然后,从客户端项目我只是导入包,以便从注册表下载包,一切正常。
现在,对于开发,我不希望每次在通用组件中进行修改并重建客户端时都要发布到注册表。 我希望像我们在Java中使用Maven一样,我们在本地仓库中安装工件,并且在进入全局“神器”之前将从本地仓库中拾取工件,但是我看到当我们使用npm安装模块时,它会安装在同一项目内的node_modules文件夹中,因此该模块不适用于任何其他项目。
我该怎么做?换句话说,npm是否保留了一个本地存储库,其中任何其他项目都可以访问已安装的模块,而无需发布到全局注册表?
谢谢
答案 0 :(得分:0)
使用npm install命令后面的--global开关来安装您选择的全局包。
希望有所帮助
答案 1 :(得分:0)
要通过npm为系统的其余节点包环境提供一些内容,您可以全局(这是系统的本地)安装它而不是本地(这是项目的本地)。您可以在NPM文档的this part中查看有关安装的全局性文档。
npm i -g package names here
npm install --global package names here
您可以像在本地安装的软件包一样更新全局安装的软件包。
npm update -g package names here
(或所有未指定的内容)
npm update -g
有关更详细的标志等,请参阅完整的NPM documentation页面。
如果您希望在托管环境中使用自己的软件包,可以publish them as private modules或将它们保存在VCS(主要是git)中,并通过适当的方法在您的VCS中引用它们项目' package.json方案通过github urls或更一般other git hosts的依赖项块,如
"dependencies": {
"myComponent": "user/repo#feature\/branch",
"otherComponent": "git+https://myGitHost.tld/.../projectName.git#commit"
}