NPM 如何引入未发布的模块
 发布于 9 年前  作者 yuexing0921  13468 次预览  最后一次回复是 6 年前  来自 问答 

NPM 如何引入未发布的模块??

比如我现在有个项目有 X,里面有引入了模块A,B,

本地开发了一个模块C,但是这个模块还没有发布到NPM上面,

现在想C代码修改后,不需要发布到NPM上面,X项目就可以用C模块的代码了,能够建立类似maven的私人仓库?

备注: C模块不在一台机器

15 回复
xcatliu

在 X 里运行:

npm install ../C
nnliang

本地导入

require('../xx/c');
yuexing0921

@xcatliu 这个目录在开发机上面!

xcatliu

@yuexing0921 把 C 模块 rsync 到 X 项目的机器上,然后 npm install ../C

xcatliu

@yuexing0921 非要建立私人 npm 的话,可以部署这个: https://github.com/cnpm/cnpmjs.org

DevinXian

直接目录安装就行了,和已发布没什么不同

yuexing0921

谢谢各位,方案都很好

atian25

楼上的所有方案都不太好…

官方推荐的方案是 npm link, 参见: https://docs.npmjs.com/cli/link

$ cd path/to/submodule
$ npm link
$ cd path/to/project
$ npm link submodule_pkg_name
  • npm link 的方式, 可以直接同步两边的修改, 实时.
  • npm install ../path/to/module 的方案, 每次你更新那边的代码, 都需要重新安装一次
  • 发布到 npm 或私有 npm 这个, 那就不叫未发布模块了.
i5ting

@atian25 非global也可以这样安装么?涨知识

atian25

@i5ting 嗯,这指令对写模块比较多的同学非常有帮助。

https://github.com/atian25/blog/issues/17

captainblue2013

@atian25 如果这样,npm设计不够好啊,npm link 这个命令居然肩负了两个作用

1340641314

涨知识了,这招很受用

source vue-cnode mobile 2.0

wangwanchao

@atian25 好玩,省的每次修改去install了