2015-10-05 197 views
-2
  • 我已经创建了一个版本节点模块1.0.0
  • 我分享它吧
  • ,在其他测试项目中我尝试使用这种依赖关系,伟大工程
  • 然后我更新模块1.0.1版本并安装全球范围内,但尚未发布
  • 于是我尝试更新相关性的该项目测试版本1.0.1,但将相关不解决

只从远程服务器解决依赖关系吗?Node.js的冲突解决

模块项目:

{ 
    "name": "my-module", 
    "version": "1.0.1", 
... 
} 

安装在本地资源库:

npm install --save 

的package.json:

{ 
    "name" : "my-project-test", 
    "version" : "0.0.1", 
    "dependencies" : { 
    "my-module": "1.0.1" 
    } 
    ... 
} 

产生的错误:

$ npm install 
npm ERR! Linux 3.16.0-45-generic 
npm ERR! argv "node" "/usr/bin/npm" "install" 
npm ERR! node v0.12.7 
npm ERR! npm v3.3.5 

npm ERR! No compatible version found: [email protected] 
npm ERR! Valid install targets: 
npm ERR! ["1.0.0"] 
npm ERR! 
npm ERR! 
npm ERR! If you need help, you may report this error at: 
npm ERR!  <https://github.com/npm/npm/issues> 

npm ERR! Please include the following file with any support request: 
npm ERR! ./npm-debug.log 

回答

1

你现在有你相依的多个安装:

  1. 全球,您已使用npm i -g <name>安装此是1.0.1版本。
  2. 本地,此版本以前安装在版本1.0.0上。

由Node.js的尝试定位通过名称提及的模块的顺序如下:看到

  1. 检查如果给定的模块是芯模块。
  2. 在当前目录(项目目录)中搜索名为node_modules的目录。
  3. 完成文件夹层次结构的检查,检查node_modules文件夹的每个级别。
  4. 查看节点中require.paths数组中列出的目录路径。

您的全球node_modules目录是在第4个列表项中;很久以后当地的node_modules目录。意味着程序停止在安装的本地依赖项上。

节点确定版本1.0.0安装在本地,并指出该错误。请注意包含No compatible version found: [email protected]的块。这是因为你的package.json1.0.1。一旦Node找到旧版本,查找将不会继续,因此升级本地安装或从Node中删除它。

为了将其删除,请在您的项目目录中使用npm uninstall <name>,以便从Node的方式中删除对版本1.0.0的依赖,迫使它查找全局目录。

源(一个很推荐阅读!):