新建一个包,并生成可以直接在命令行执行的指令

 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

原文地址:https://www.cnblogs.com/leaf526/p/3625539.html