Nodejs 代码中为 Gulp Webpack 等 Iterm2 窗口添加端口识别标记

缘由

最近两年来经常在 Iterm2 中打开好几个窗口运行 Gulp, Webpack 等,在每个窗口布满 log 后,想找到哪个窗口是干嘛的都有些困难,更不用说这个窗口占用了哪个端口。

所以得有方法标记每个窗口是哪个占用哪个端口号,在跑啥。

解决方案

一个 npm 包

npm i set-iterm2-badge

两行代码

var setIterm2Badge = require('set-iterm2-badge')
setIterm2Badge('官网 8080')

看看效果:

多个 Iterm2 窗口切换时效果:

1

工具集成

Gulp 和 Browser Sync

如果使用 Gulp 和 Browser Sync,要注意 Browser Sync 的 port 并不一定是传入的 port。
比如下面这个例子,如果 8080 被其他进程占用了,bs 可能会 8081 8082 等一路试下去哪个可用用哪个。所以得使用回调的对象调用最终端口 bs.options.getIn(['port']) 来处理

var bs = require('browser-sync').create();
bs.init({
    port: 8080,
    /*你的其他配置*/
}, function(err, bs) {
    setIterm2Badge(bs.options.getIn(['port']));
});

Webpack Dev Server

要在 Webpack 集成使用这个功能,得使用 'webpack-dev-middleware' 来运行 Webpack。示例

var devConfig = require(path.resolve(__dirname, './dev'));
var app = express()
var compiler = webpack(devConfig);
app.use(require("webpack-dev-middleware")(compiler, {
    publicPath: devConfig.output.publicPath
}));
var port = 8078
setIterm2Badge('官网 ' + port)
app.listen(port, '0.0.0.0', function (err) {
  if (err) {
    console.log(err)
    return
  }
  console.log('Listening at http://0.0.0.0:' + port)
})

本文同步发布在作者博客:http://zaishanda.com/post/set-iterm2-badge

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值