首页 > Web开发 > 详细

Node.js使用本地依赖

时间:2021-05-26 09:27:00      阅读:31      评论:0      收藏:0      [点我收藏+]

最近项目组写了几个模块,打算采用依赖的方式来使用它们。

因为敏感性问题,不打算发布到npm官方仓库;自行搭建一个npm仓库成本也大。

所以最后决定采用本地安装。

即在package.json中填写如下:

  "dependencies": {
    "module_a": "../module_a"
  },

但是npm安装本地依赖,会有个bug。

比如现在有项目 myproject module_a module_b

myproject 依赖 module_a module_b
module_a 依赖 lodash(或者其他第三方依赖)
module_b 依赖 module_a lodash(或者其他第三方依赖)

那么在myproject执行npm i 的时候,会出现以下错误信息,无法安装成功

npm ERR! code ENOENT
npm ERR! syscall rename
npm ERR! path /home/guohaoyun/workspace/test_local_dependence/myproject/node_modules/.staging/lodash-09e8142d
npm ERR! dest /home/guohaoyun/workspace/test_local_dependence/module_a/node_modules/lodash
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, rename ‘/home/guohaoyun/workspace/test_local_dependence/myproject/node_modules/.staging/lodash-09e8142d‘ -> ‘/home/guohaoyun/workspace/test_local_dependence/module_a/node_modules/lodash‘
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! /home/guohaoyun/.npm/_logs/2021-05-19T14_30_34_266Z-debug.log

这里有两种解决方案:

  1. 本地依赖一个个安装
    即在 myproject 一个个执行下面的指令
    npm i ../module_a
    npm i ../module_b

  2. 将 module_a module_b 打包
    执行 cd module_a && npm packcd module_b && npm pack

    生成
    module_a-1.0.0.tgz 和 module_b-1.0.0.tgz
    然后更改 myproject的package.json

      "dependencies": {
    	"module_a": "../module_a-1.0.0.tgz",
    	"module_b": "../module_b-1.0.0.tgz"
      }
    

    最后和平时一样,执行 npm i 即可

Node.js使用本地依赖

原文:https://www.cnblogs.com/blacklsle/p/14787684.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!