快速使用本地的node module

在之前的文章中有讲过如何写一个npm module,我们需要账号然后发布到npm上,如果我们仅仅需要使用本地的node module直接进行开发改如何做呢?这里有两种方案:

为了方便我们已经在github上写了些简单的代码,clone下来并进入到npm-link工程

方法一:npm install /path

进入到myApp目录

npm init -y
npm install ../greeting-module -S

一切顺利的话你可以在package.json中看到

在shell中执行

node app.js # hello world

此时你修改下greeting-module中的hello.js

module.exports = function(name){
  return 'hi ' + name;
}

再次运行node app.js你会得到hi world。

当然你想删除此node module的话用法和删除npm包一样

npm uninstall ../greeting-module

进入到greeting-module目录

npm link

在log中会提示node_modules全局包生成了greeting-module,并指向了当前的这个greeting-module,我们简称global->local

进入到myApp目录

npm link greeting-module
node app.js # hello world

在log中提示myApp中的node_modules生成了greeting-module,指向了全局包的greeting-module,我们这里简称myApp->global->local。

这里我们可以注意到myApp中的greeting-module其实是global及local的引用,修改任意一个都将会改变myApp中的greeting-module

我用到了nvm,进入到 /Users/guoyaqi/.nvm/versions/node/v9.0.0/lib/node_modules/greeting-module目录下,修改代码如上hello.js的内容

node hello.js # hi world

如果greeting-module依赖其它的本地module,和上面提到的一样,需要到那个module目录npm link,然后到greeting-module目录npm link 那个module即可

如果你希望删除此包

npm unlink greeting-module