我有两个模块 - 我的主项目和组件库 - 我想将lib链接到主项目。两者都在使用webpack并做出反应。所以我做了:
在comp-lib目录中:
npm link
在项目目录中:
npm link comp-lib
软件包显示在node_modules文件夹中,但是当我处理组件库时,更改不会反映在主项目中。我错过了什么?
我无法在Google上找到关于此问题的内容,而npm链接文档只是说明了这个例子:“现在,对〜/ projects / node-redis的任何更改都会反映在〜/ projects / node-bloggy中/ node_modules /节点redis的/“。
答案 0 :(得分:9)
链接包有类似问题 - npm link dep
正在挑选旧版“dep”。
在“dep”文件夹中再次运行npm link
解决了这个问题。理论上它应该只调用一次,但由于某种原因它有时会失去同步。
因此,为了可靠地更新链接项目,请在每次更改后执行以下步骤:
npm link
npm link dep
答案 1 :(得分:0)
可能是因为您在组件上增加了版本,却忘记增加主项目中的版本。
然后,任何npm
操作都将下载package-lock.json
中指示的版本:过时的版本,从而删除由npm link
设置的链接。
答案 2 :(得分:0)
我不记得我到底遇到了什么问题,也不确定是否所有这些都是必要的,但是对我来说,它很好用。
我将以下迷你脚本添加到package.json脚本列表中
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalidParameter",
"message": "Invalid field selection createdTime",
"locationType": "parameter",
"location": "fields"
}
],
"code": 400,
"message": "Invalid field selection createdTime"
}
}
(用您的软件包名称替换“ my-lib”)
然后,只要您更改库中的某些内容,就只需调用"scripts": {
"clean": "if exist dist ( rd /S /Q dist)",
"updateLink": "npm run clean && tsc && npm rm my-lib -g && npm link"
}
。
它的作用:
答案 3 :(得分:0)
确保主项目和依赖项目的 Node 版本精确匹配。
如果您使用 nvm
管理多个节点版本上的多个项目,npm link
将仅在启动 npm link
的节点版本中生成符号链接(即依赖项目)。