我有一个我正在处理的自定义npm模块,它有一个GitHub仓库。我还在开发一个使用自定义模块的项目。在处理较大的项目时,最好使用npm link
,这样我就可以对模块进行更改并立即在主项目中查看它们。
要部署到登台或生产,我使用shrinkwrap和shrinkpack所以我可以在每次部署后执行 编辑:我正在解决这个问题,因为下面的答案在技术上得到了解决我的问题,即使它没有解决这个问题,但这并不像其他问题那么重要。npm install
(某些依赖项需要二进制文件,并且开发系统不是'与生产系统相同,因此它们确实需要安装,而不仅仅是保存在源代码管理中。)
当然,由于模块已链接到我的主项目而未列在package.json
中,因此部署和安装完全错过了它。我可以继续在package.json
中列出并指出相应的GitHub仓库,但是每当我需要测试主项目中的更改时,我必须提交并推送这些更改,然后更新主要项目,杀死并重新启动应用程序......这很快就会很烦人。
我想我需要与#34; devDependencies"相反的东西;我可以拥有它的东西不在dev上安装模块,但做在暂存或生产时执行npm install
时从GitHub安装它。除了记得每次我需要来回时手动更改package.json
,还有更好的方法吗?
答案 0 :(得分:2)
您可以在package.json文件中指定要安装的github存储库:
{
dependencies: {
"my-library": "githubusername/my-library"
}
}
这将适用于您的生产环境。
在您的开发环境中,使用" npm link"。
来自" my-library"文件夹,直接运行npm link
。这将告诉npm你的本地邮箱" my-library"是可以作为一个链接。
现在,在使用" my-library"的项目中,运行npm link my-library
。这将创建一个符号链接到本地开发版本的#34; my-library",允许您更改该存储库中的代码,并使其在您需要它的其他项目中工作。
一旦你准备好投入生产,推动我的图书馆"到您的github存储库,然后您可以像平常一样在您的服务器上安装npm。