新建一个包,并生成可以直接在命令行执行的指令
1 在本地新建一个目录four, 在此目录执行指令: npm init
2 在/four/lib/目录里放js代码 : inlib.js
module.exports = function(message){
return message;
}
3 在/four/bin/里放指令文件: inbin.js
#! /usr/bin/env node
var libsth = require("../lib/inlib.js");
console.log(libsth("gsky"));
4 编辑/four/package.json,其中:
{
“name” : “four”,
“main” : “./bin/inbin.js”,
}
5 此时,在/four/bin/目录执行node inbin.js,会显示正确结果: gsky
并且,在命令行验证 node -e 'require("/home/vagrant/four")' , 会显示正确结果: gsky
6 为inbin.js赋权: chmod a+x inbin.js
7 此时,在/four目录,命令行执行./bin/inbin.js,会显示正确结果:gsky
但是此时如果进入/four/bin目录,命令行执行inbin.js,会提示找不到这个指令.必须通过路径来执行.
同时,此时如果命令行直接执行four,会提示找不到这个指令.
8 编辑/four/package.json,
{
“name” : “four”,
“main” : “./bin/inbin.js”,
“bin” : {“four” : “./bin/inbin.js”}
}
9 使用npm link将这个本地包链接到全局: 在/four目录下执行 sudo npm link;
10 此时在命令行直接执行four, 会显示正确结果: gsky