创建具有本地依赖关系的本地npm包,并将其安装在另一个包

时间:2016-08-01 06:51:40

标签: javascript node.js npm npm-install

我创建了三个不同的自定义模块。

  1. getcorrespondence-1.0.0.tgz
  2. getrediscache-1.0.0.tgz
  3. setrediscache-1.0.0.tgz
  4. 我使用 npm pack 命令创建了这些自定义节点模块。模块getcorrespondence-1.0.0.tgz依赖于另外两个在本地创建的自定义模块(getrediscache-1.0.0.tgz,setrediscache-1.0.0.tgz)。

    我面临的问题是,当我尝试在另一个节点项目中安装getcorrespondence-1.0.0.tgz时,它会抛出错误,如下所示:

      

    npm install getcorrespondence-1.0.0.tgz npm ERR! addLocal无法安装   C:\回购\ Microservices_APIs \ PaymentsAPI \ CommonAPI.Specs.Unit \ getcorrespondence-1.0.0.tgz \ getrediscache-1.0.0.tgz   错误的ERR! addLocal无法安装   C:\回购\ Microservices_APIs \ PaymentsAPI \ CommonAPI.Specs.Unit \ getcorrespondence-1.0.0.tgz \ setrediscache-1.0.0.tgz   错误的ERR! Windows_NT 10.0.10240 npm ERR! argv“C:\ Program   Files \ nodejs \ node.exe“”C:\ Program   Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js“”install“   “getcorrespondence-1.0.0.tgz”npm ERR!节点v6.3.1 npm ERR! NPM   v3.10.3 npm ERR!路径   C:\回购\ Microservices_APIs \ PaymentsAPI \ CommonAPI.Specs.Unit \ getcorrespondence-1.0.0.tgz \ getrediscache-1.0.0.tgz   错误的ERR!代码ENOENT npm ERR! errno -4058 npm ERR!系统调用打开

         

    npm ERR! enoent ENOENT:没有这样的文件或目录,打开   'C:\回购\ Microservices_APIs \ PaymentsAPI \ CommonAPI.Specs.Unit \ getcorrespondence-1.0.0.tgz \ getrediscache-1.0.0.tgz'   错误的ERR! enoent ENOENT:没有这样的文件或目录,打开   'C:\回购\ Microservices_APIs \ PaymentsAPI \ CommonAPI.Specs.Unit \ getcorrespondence-1.0.0.tgz \ getrediscache-1.0.0.tgz'   错误的ERR! enoent这很可能不是npm本身的问题   呃! enoent并且与npm无法找到文件有关。 NPM   呃! enoent npm ERR!请包含以下文件   支持请求:npm ERR!   C:\回购\ Microservices_APIs \ PaymentsAPI \ CommonAPI.Specs.Unit \ NPM-的debug.log

    我的getcorrespondence-1.0.0.tgz的package.json文件是:

    {
       "name": "getcorrespondence",
       "version": "1.0.0",
       "description": "Get Correspondence Module",
        "author": {
           "name": "XYZ",
           "email": ""
        },
        "dependencies": {
           "getrediscache": "file:./getrediscache-1.0.0.tgz",
           "jslinq": "^1.0.15",
           "setrediscache": "file:./setrediscache-1.0.0.tgz",
           "soap": "^0.16.0"
        }
    }
    

    正确安装软件包需要进行哪些更改。

    创建getcorrespondence包后,我的tgz文件如下所示:

    enter image description here

1 个答案:

答案 0 :(得分:0)

NPM的错误通常令人沮丧地神秘。该文本墙中的相关部分是no such file or directory, open 'C:\Repos\Microservices_APIs\PaymentsAPI\CommonAPI.Specs.Unit\getcorrespondence-1.0.0.tgz\getrediscache-1.0.0.tgz',这基本上意味着npm期望文件存在于该路径中,但事实并非如此。

我认为package.json中的原因路径不正确。