我有两个模块--主项目和组件库--我想把库链接到主项目,这两个模块都使用webpack和react,所以我做了:
在comp-lib目录中:
npm链接
在项目目录中:
npm链接组件库
包显示在node_modules文件夹中,但是当我处理组件库时,更改没有反映在主项目中。我错过了什么?
我在Google上找不到关于这个问题的任何东西,而npm链接文档只是提到了这个例子:现在,对~/projects/node-redis所做的任何更改都将反映在~/projects/node-bloggy/node_modules/node-redis/中。
5条答案
按热度按时间vh0rcniy1#
链接包也有类似的问题-
npm link dep
正在拾取旧版本的“dep”。在“dep”文件夹中运行
npm link
(再次)解决了这个问题。理论上它应该只被调用一次,但由于某种原因它有时会不同步。因此,为了可靠地更新链接项目,请在每次更改后执行以下步骤:
1.重新生成链接项目
1.运行
npm link
1.在宿主项目中运行
npm link dep
c6ubokkw2#
我不记得我到底有什么问题,我也不知道是否所有这些都是必要的,但对我来说,它的工作很好。
我向package.json脚本列表中添加了以下迷你脚本
(将"my-lib"替换为您的软件包名称)
然后只要在库中更改某些内容就调用
npm run updateLink
。它的作用:
yeotifhr3#
确保主项目和依赖项项目的节点版本精确匹配。
如果您使用
nvm
来管理多个节点版本上的多个项目,则npm link
将仅在启动npm link
的节点版本(即依赖项目)中生成符号链接。l5tcr1uw4#
可能是因为您升级了组件的版本,而忘记增加主项目的版本,那么,任何
npm
操作都会下载package-lock.json
:过时的版本,从而移除由npm link
建立的链接。i7uaboj45#
我的问题是我的模块/包在本例中导出构建文件。我没有修复它,因为我们从多个组件导出多个文件,但如果您遇到这个问题,请将
main
(在我的情况下为exports
)更改为导出模块的任何文件