学习写一个简单的Node命令行工具(写给自己看的🙄)
- 1 创建一个js文件
vi fed.js
, 并且写入console.log('这是我的命令行工具哦')
; - 2 添加linux脚本的运行环境,继续
vi fed.js
, 然后在文件的最上面一行添加#!/usr/bin/env node
来告诉shell工具这个文件需要用nodejs来运行,以后执行运行该文件就可以默认采用node环境来运行该文件了。 - 3 为该文件添加
可执行
的权限,命令行输入chmod +x fed.js
, 这样以后可以直接在命令行工具上找到fed.js
的文件位置并且可以直接运行./fed.js
,就可以打印出之前的console.log
了,如果没有添加可执行的权限是不行的哦 - 4 刚才运行的时候还是加了相对路径
./fed.js
的命令才运行起来的,这样显然太麻烦,所以可以加入环境变量,那么不管在什么地方都可以直接运行了,首先查看已有的环境变量echo $PATH
- 5 为
fed.js
创建一个全局变量的链接,ln ./fed.js /usr/local/bin/fed
, 相当于在全局的环境变量下创建了一个fed
的变量并且链接到fed.js
,现在就可以直接输入fed
来运行之前的fed.js
了
不足之处
- 上面生成的命令变量,如果依赖了node_module的包就找不到依赖了,所以就要借助npm来生成环境变量了
- 删除刚才的全局变量
rm 'which fed'
, 然后npm init,一路回车,在package.json里面写上bin: { 'fed': './fed.js' }
创建一个连接 - 最后在命令行关联,
npm link
即可,再试试fed
就成功了