我正在尝试编写一个npm软件包,该软件包将在其他项目中发布并用作框架。问题是 - 在处理依赖的项目的同时,我无法找到一个可靠的工作流程来处理它。
我知道这似乎是超级基本的,并且npm link
解决了这个问题,但这比只能从另一个本地包导入一个更大的问题。
我的框架包已架好了;我们称之为gumby
,它会导出一个console.log('hello from gumby')
的函数。这就是现在最重要的事情。
现在我已准备好创建一个将使用gumby
的项目。我们称之为client
。我也设置了npm link gumby
,因此client
可以从中导入等等。好的很酷,它按预期工作。
现在是时候发布gumby
了。我运行npm publish
,它以版本0.0.1的形式发送到npm。
此时,如何将gumby
的已发布的npm托管版本添加到package.json
的{{1}}?我的意思是,我可以从我的client
然后node_modules
删除符号链接的副本,但是如果我想再回到本地工作呢?然后再次针对npm版本运行它?然后再做一些工作?然后......
我想到了你的观点。没有明显的方法可以在您正在处理的软件包的npm副本和本地软件包之间进行切换。还有一个额外的问题,即如何在不弄乱yarn add gumby
的情况下如何做到这一点,例如如果我意外地使用一些奇怪的package.json
依赖路径提交版本控制,该怎么办?任何建议都会非常感激。
答案 0 :(得分:2)
对于本地开发,使用包装符号链接绝对是可行的方法,不断发布/重新安装包的想法听起来像是一种痛苦。
真正的问题听起来更像是你担心将dev配置提交给prod - 你可以通过像VCS上的预提交钩子那样简单的方法来解决这个问题,例如:如果它在package.json中检测到任何本地文件引用,则阻止。