npm链接模块列为未满足的依赖关系

时间:2018-09-06 13:16:43

标签: node.js npm node-modules

我正在链接my-lib以便立即查看my-app中的效果。

cd my-lib-folder
npm link

cd ../my-app-folder
npm link my-lib

这按预期工作。 my-app进行了更改,我在node_modules中看到了符号链接。我的问题是在my-app-folder/中,npm list --link=true显示为空。如何获得链接模块的列表?

npm ls my_lib
my-app@3.1.0 /Users/path/my_project
└── UNMET DEPENDENCY my-lib@3.7.0 

npm ERR! missing: my-lib@3.7.0, required by my-app@3.1.0

节点8和10及其各自的npm版本都会发生这种情况。

2 个答案:

答案 0 :(得分:1)

好的,我意识到my-lib以某种方式在全球范围内链接了

 $ npm ls -g --link=true --depth=0
/Users/apth/.nvm/versions/node/v8.11.4/lib
└── my-lib@3.1.0 -> /Users/franzih/code/my-lib-folder

取消与npm unlink -g my-lib的链接并再次进行链接,它现在显示为本地链接:

$ npm ls --link=true
my-app@3.1.0 /Users/path/code/my-app-folder
└─┬ my-app@3.7.0 -> /Users/path/.nvm/versions/node/v8.11.4/lib/node_modules/my-lib-folder
  ├─┬ https-proxy-agent@2.2.1
  │ ├─┬ agent-base@4.2.1
  │ │ └─┬ es6-promisify@5.0.0
  │ │   └── es6-promise@4.2.4
  │ └─┬ debug@3.1.0
  │   └── ms@2.0.0
  └── node-fetch@2.2.0

现在npm i不再覆盖链接。都好。

答案 1 :(得分:0)

就我而言,“ my-lib”未全局链接,但我必须:

  1. 从“我的应用”(npm uninstall my-lib)完全卸载
  2. npm link my-lib来自“ my-app”,然后
  3. 在“我的应用”中运行npm install my-lib

所有其他步骤组合均无效,并且在任何地方都找不到卸载或重新安装的信息。希望这可以帮助其他遇到此问题的人。