NPM 如何引入未发布的模块
发布于 8 年前 作者 yuexing0921 12278 次浏览 来自 问答

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

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

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

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

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

15 回复

在 X 里运行:

npm install ../C

本地导入

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

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

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

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

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

谢谢各位,方案都很好

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

官方推荐的方案是 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 这个, 那就不叫未发布模块了.

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

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

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

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

谢谢各位了

涨知识了,这招很受用

source vue-cnode mobile 2.0

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

回到顶部