如何在安装时自动链接npm包?

时间:2017-07-28 21:58:00

标签: node.js npm

我正在开发一个更大的项目,该项目分为许多 npm 包。包之间存在多个依赖关系。整个代码库存储在主目录中,如下所示:

main/
  pkg1/
  pkg2/
  ...

假设 pkg2 依赖于 pkg1 ,所以在main/pkg2/package.json我有:

"dependencies": {
  "pkg1": "^0.1.0"
}

我已使用npm link将我的包链接在一起。但是,当我在新机器上开始开发或由于某种原因我必须重新安装软件包时,我不能简单地在npm install中说pkg2/。它会失败,因为无法找到pkg1。 (它没有发布,但无论如何,我想要本地版本,因为我正在开发这两个包。)

当然,我可以手动完成所有链接而不是调用npm install,但这很麻烦。有没有办法一步到位?

我之前的研究:

This问题建议编写一个预安装脚本,但我不想在生产中保持链接,只在开发环境中,因为another回答指出它

我还在npm linkpkg1/然后npm install --link pkg2/尝试了//an example with just one key. button_dev = input_allocate_device(); if (!button_dev) { printk(KERN_ERR "button.c: Not enough memory\n"); error = -ENOMEM; goto err_free_irq; } button_dev->evbit[0] = BIT_MASK(EV_KEY); button_dev->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0); 。根据手册,

  

在某些情况下, - link参数将导致npm将全局安装链接到本地​​空间。

不是我的情况。

2 个答案:

答案 0 :(得分:0)

我不喜欢这样做;我通常更喜欢运行本地存储库或使用git URL来实现这样的依赖。

也就是说,如果你想继续使用npm链接,你总是可以使用预安装脚本方法,但不能使用预安装密钥。

"autolink": "cd ../project1 && npm link && cd ../project2 && npm link project1_name",

然后在您的cli中,您可以在首次设置开发环境时执行$ npm run autolink

答案 1 :(得分:0)

您可以使用zelda。由Feross撰写,它的设计正是为了这个目的。