我正在开发一个更大的项目,该项目分为许多 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 link
中pkg1/
然后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将全局安装链接到本地空间。
不是我的情况。
答案 0 :(得分:0)
我不喜欢这样做;我通常更喜欢运行本地存储库或使用git URL来实现这样的依赖。
也就是说,如果你想继续使用npm链接,你总是可以使用预安装脚本方法,但不能使用预安装密钥。
"autolink": "cd ../project1 && npm link && cd ../project2 && npm link project1_name",
然后在您的cli中,您可以在首次设置开发环境时执行$ npm run autolink
。
答案 1 :(得分:0)
您可以使用zelda。由Feross撰写,它的设计正是为了这个目的。