今天讲点有意思的事情。
平时上班后经常会忘了打开邮件,或者就是忘记打开 Slack,导致同事们有一些工作上的事情在线联系不到我,一个一个点开 xxx.app 是一件很低效的事情,在同事们比拼脚本的情况下,萌生写个脚本解决这件事情的想法。
技术选型
正好前一段时间在搞 eleme/Amigo 相关的事情,node.js使用得比较多,所以决定用 node.js。
目录结构
.
├── README.md
├── bin
│ ├── home.js
│ └── work.js
├── node_modules
│ ├── colors
│ └── shelljs
└── package.json
制作一个 node.js cli 工具至少需要 bin 目录和 package.json。其次可以安装一些其他依赖包, bin目录中存放主要代码,在 package.json中定义字段:
"bin": {
"start-work": "bin/work.js",
"go-home": "bin/home.js"
}
表示在安装后在命令行输入运行 start-work
和go-home
两条命令时会执行这两个 js 文件。
实现
其实用 node.js只是一个噱头,本质还是调用 shell 执行,比如 work.js:
#!/usr/bin/env node
var colors = require('colors');
var shell = require('shelljs');
var apps = ['Slack', 'Mail', 'SourceTree', 'WeChat', 'Xcode', "Google\\ Chrome"];
apps.forEach((app) => {
shell.exec('open -a /Applications/'+ app +'.app');
var log = 'open '+app + ' complete';
console.log(log.red);
});
就是注明了我要打开 Slack, Mail, SourceTree... 等等这些软件,调用 shell执行这些命令。当然代码很简单,没有包括错误处理 :)
安装
在工程目录下
npm install . -g
就可以把你写的命令全局安装了,然后在 Terminal中执行吧。
发布到 npm
在 npmjs.org 上注册一个账号,然后在命令行 npm login
, 然后把你写的工程 npm publish
出去,就可以在其他电脑上安装了。
-EOF-