NPM 如何引入未发布的模块??
比如我现在有个项目有 X,里面有引入了模块A,B,
本地开发了一个模块C,但是这个模块还没有发布到NPM上面,
现在想C代码修改后,不需要发布到NPM上面,X项目就可以用C模块的代码了,能够建立类似maven的私人仓库?
备注: C模块不在一台机器
回复 (15)
A
楼上的所有方案都不太好....
官方推荐的方案是 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 这个, 那就不叫未发布模块了.
I
A
@i5ting 嗯,这指令对写模块比较多的同学非常有帮助。
C
引用 atian25@i5ting 嗯,这指令对写模块比较多的同学非常有帮助。 https://github.com/atian25/blog/issues/17
@atian25 如果这样,npm设计不够好啊,npm link 这个命令居然肩负了两个作用
W
X
在 X 里运行:
npm install ../C
N
本地导入
require('../xx/c');
Y
引用 xcatliu在 X 里运行:
@xcatliu 这个目录在开发机上面!
X
引用 yuexing0921@xcatliu 这个目录在开发机上面!
@yuexing0921 把 C 模块 rsync 到 X 项目的机器上,然后 npm install ../C
X
引用 yuexing0921@xcatliu 这个目录在开发机上面!
@yuexing0921 非要建立私人 npm 的话,可以部署这个: https://github.com/cnpm/cnpmjs.org
D
直接目录安装就行了,和已发布没什么不同
Y
谢谢各位,方案都很好
A
Y
谢谢各位了
1
涨知识了,这招很受用
source vue-cnode mobile 2.0
参与回复
登录后即可参与回复。登录