如何同时处理两个npm包?

时间:2018-02-09 00:05:18

标签: node.js npm yarnpkg

我正在尝试编写一个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依赖路径提交版本控制,该怎么办?任何建议都会非常感激。

1 个答案:

答案 0 :(得分:2)

对于本地开发,使用包装符号链接绝对是可行的方法,不断发布/重新安装包的想法听起来像是一种痛苦。

真正的问题听起来更像是你担心将dev配置提交给prod - 你可以通过像VCS上的预提交钩子那样简单的方法来解决这个问题,例如:如果它在package.json中检测到任何本地文件引用,则阻止。