【效率小技巧】让alfred帮我启动所有项目,nice

🧑‍💻 写在开头

事情的起因是因为我最近在做的一个新项目,业务需求的优先级大于基建并且和旧项目挂钩,需要使用到旧项目的基础能力,现在是类似使用了微前端的技术做了隔离,就有很多个项目,还没时间也没人做monorepo,公司给的电脑配置也不高,每天都要重启,导致我每天得用vscode挨个打开项目,挨个启动,忒烦人了,实在是忍不了了。

所以,我简单看了下有没有一键帮我跑所有项目的这种方式,找到了alfred,可以做工作流,能够做到用快捷键触发一个工作流,工作流可以写脚本帮我打开vscode并且启动项目,下面简单记录一下实现。

🥑 效果如下

🧑‍💻☀️🍐🍎🍑🍉🍒🥑🥝

一、alfred工作流简单理解

工作流(Workflows)是Alfred一个非常核心的特性。工作流允许用户创建一系列自定义的动作,完成复杂的任务,从而极大增强了Alfred的功能性和适应性。

1.工作流的组成部分

工作流通常由以下几种元素组成:

  • 触发器(Triggers) : 这些组件用于启动工作流。它们可以是热键、关键词、联系人操作、系统事件等。
  • 动作(Actions) : 当触发器被触发后,动作定义了实际执行的任务。动作可以是打开文件、运行脚本、控制系统等。
  • 输入(Inputs) : 用户输入的数据,可以通过查询传递给工作流进行进一步处理。
  • 输出(Outputs) : 显示信息、经过处理的查询结果、通知等。
  • 连接器(Connectors) : 这些线条连接触发器、动作、输入和输出,定义了工作流中的数据流向和逻辑流程。

2.工作流的功能

能干的就多了,这篇文章就是一个很好的例子

  • 执行常用的操作,例如快速发送邮件、搜索内容、管理窗口和标签等。
  • 自动化复杂的任务,如一键上传图片、格式化数据、批量重命名文件等。
  • 与外部应用程序和服务集成,如控制音乐播放、提交代码到git、连接到家庭自动化设备等。
  • 快速访问常用的文档、文件夹和网址。
  • 利用自定义的Shell脚本、AppleScript、JavaScript和其他语言的脚本扩展功能。

二、实操-实现自动打开vscode启动项目

这里是可以仅用一个工作流就实现同时打开多个项目的,但是下面我们想介绍一下工作流如何调用其他工作流,所以我们这里分开,并且如果我只想打开一个项目也可以直接用。

1.创建工作流打开A项目

首先我们创建一个工作流

增加一个快捷键触发,录制你喜欢的快捷键,我这里随便录制一个,保存。

增加一个打开文件,使用vscode打开,从访达拖入即可,左边是文件夹,右边是使用哪个应用打开,保存,连接起来

我们增加一个run script跑一个脚本让vscode新建一个终端,然后执行项目启动命令,然后切换到全屏

脚本如下:

bash 复制代码
#!/bin/zsh

# 等待VSCode启动
sleep 2

# 使用osascript运行AppleScript来在VSCode中打开终端,运行命令,然后切换全屏
osascript <<END
tell application "Visual Studio Code"
    activate
    tell application "System Events"
        keystroke "\`" using {control down, shift down} # 创建新终端
        delay 3 # 等待一小段时间让终端准备就绪,确保命令能被正确输入
        keystroke "f" using {control down, command down} # 切换到全屏模式
 	    delay 3 # 等待命令执行,需要时可以适当增长这个时间
        keystroke "yarn start" # 输入你的启动命令
        delay 3 # 等待输入完成
        keystroke return # 按回车键执行命令
        
    end tell
end tell
END

到这里就已经可以打开启动项目了,效果如下

2.创建工作流打开项目B

同A的创建流程

3.如何使用一个工作流同时触发A、B的工作流

主要是将需要被调用的工作流设置一个被调用工作流的External Trigger,然后在调用的地方使用Call External触发其他工作流

A、B都设置被调用流

在主工作流中设置触发其他工作流,这里的这个trigger id就是我们上面设置的触发id

这样就实现了文章开头的效果,这只是一个简单的demo,但是给了我们无限想象,你可以编写脚本实现任何你想要自动化的工作流,大部分都是有解决方案的,比如自动切换hosts,自动切换wifi等。

🍎 推荐阅读

工程化系列

本系列是一个从0到1的实现过程,如果您有耐心跟着实现,您可以实现一个完整的react18 + ts5 + webpack5 + 代码质量&代码风格检测&自动修复 + storybook8 + rollup + git action实现的一个完整的组件库模板项目。如果您不打算自己配置,也可以直接clone组件库仓库切换到rollup_comp分支即是完整的项目,当前实现已经足够个人使用,后续我们会新增webpack5优化、按需加载组件、实现一些常见的组件封装:包括但不限于拖拽排序、瀑布流、穿梭框、弹窗等

面试手写系列

🍋 写在最后

如果您看到这里了,并且觉得这篇文章对您有所帮助,希望您能够点赞👍和收藏⭐支持一下作者🙇🙇🙇,感谢🍺🍺!如果文中有任何不准确之处,也欢迎您指正,共同进步。感谢您的阅读,期待您的点赞👍和收藏⭐!

感兴趣的同学可以关注下我的公众号ObjectX前端实验室

🌟 少走弯路 | ObjectX前端实验室 🛠️「精选资源|实战经验|技术洞见」

相关推荐
我要改名叫嘟嘟2 小时前
在《微信读书》连续阅读1000天是一种怎样体验,以及拥有怎样的收获
程序员
Electrolux20 小时前
【使用教程】一个前端写的自动化rpa工具
前端·javascript·程序员
小和尚同志1 天前
3. Github Actions 自动部署
程序员·开源·github
无限大61 天前
《计算机“十万个为什么”》之前端与后端
前端·后端·程序员
陈随易1 天前
薪资跳动,VSCode实时显示今日打工收入
前端·后端·程序员
世界因我而不同1 天前
字节跳动TRAE国内版使用配置超详细教程,小白也能轻松上手!
程序员
陈随易2 天前
实测:打包4321个文件,下一代Vite速度快一倍
前端·后端·程序员
猫蝠侠2 天前
2025 年 Python AI 技术白皮书:AI Agent、Prompt、RAG、Function Calling、MCP 与 AI 开发框架
程序员
袁煦丞2 天前
你的在线相册管理专家Piwigo:cpolar内网穿透实验室第487个成功挑战
前端·程序员·远程工作
用户401761214753 天前
AI 能从一句话搞定一个 2048 游戏吗?codebuddy 初体验
程序员