参考文档

npm link官网文档

性能

npm link是一种把包链接到包文件夹的形式,即:能够在不公布npm模块的状况下,调试该模块,并且批改模块后会实时失效,不须要通过npm install进行装置

办法

模块和我的项目在同一目录下$ npm link ../module模块和我的项目不在同一目录下$ # 先去到模块目录,把它 link 到全局$ cd ../npm-link-test$ npm link$$ # 再去我的项目目录通过包名来 link$ cd ../my-project-link$ npm link test-npm-link(模块包名,即:package.json中name)$$ # 解除link$ 解除我的项目与模块的link,在我的项目目录下,npm unlink 模块名$ 解除模块全局的link,在模块目录下,npm unlink 模块名

npm link 命令能够将一个任意地位的npm包链接到全局执行环境,从而在任意地位应用命令行都能够间接运行该npm包。

这个命令次要做了两件事:

  • 为npm包目录创立软链接,将其链到 {prefix}/lib/node_modules/<package>,是一个快捷方式
  • 为可执行文件(bin)创立软链接,将其链到 {prefix}/bin/{name}

举个

模块目录:npm-link-test
$ npm init

//package.json{  "name": "test-npm-link",  "version": "1.0.0",  "description": "npm link test",  "main": "index.js",  "scripts": {    "test": "echo \"Error: no test specified\" && exit 1"  },  "author": "",  "license": "ISC",  "dependencies": {}}

$ touch index.js

//index.jsmodule.exports = {    name: 'test-npm-link',    sayHello: function() {        console.log("hello test-npm-link");    }}

我的项目目录:my-project-link
$ touch demo.js

//demo.jsvar linkModule = require("test-npm-link"); linkModule.sayHello()

执行成果

npm-link-test 模块会被链接到 my-project-link/node_modules上面,是一个快捷方式