上面的命令会在NPM的全局模块目录内,生成一个符号链接文件,该文件的名字就是
package.json 文件中指定的模块名。
/path/to/global/node_modules/myModule -> src/myModule这个时候,已经可以全局调用
myModule 模块了。但是,如果我们要让这个模块安装在项目内,还要进行下面的步骤。切换到项目目录,再次运行
npm link 命令,并指定模块名。
src/myProject$ npm link myModule上面命令等同于生成了本地模块的符号链接。
src/myProject/node_modules/myModule -> /path/to/global/node_modules/myModule
然后,就可以在你的项目中,加载该模块了。
var myModule = require('myModule');这样一来,
myModule 的任何变化,都可以直接反映在
myProject 项目之中。但是,这样也出现了风险,任何在
myProject 目录中对
myModule 的修改,都会反映到模块的源码中。如果你的项目不再需要该模块,可以在项目目录内使用
npm unlink 命令,删除符号链接。
src/myProject$ npm unlink myModule二. 可执行脚本
写一个简单的脚本hello
$ mkdir hello #创建一个文件夹
$ cd hello && touch hello #创建命令文件
#!/usr/bin/env node
console.log('hello world');文件的头部务必加入#!/usr/bin/env node这行代码,这里表示使用node作为脚本的解释程序,node的路径通过env来查找,可以避免node安装路径不一带来的问题。
打开 /usr/bin/env,可以查看到PATH,操作系统通过路径找到node

然后,修改 hello 的权限。
$ chmod 755 hello
$./hello
如果想把 hello 前面的路径去除,可以将 hello 的路径加入环境变量 PATH。但是,另一种更好的做法,是在当前目录下新建 package.json ,写入下面的内容。
{
"name": "hello",
"bin": {
"hello": "./hello"
}
}然后执行 npm link 命令。不明白的看上面









