用nodejs写一个简单的Alfred workflow

3,025 阅读2分钟

工作中很多时候都要讲究效率,把一些繁琐重复的事精简化。

我用的环境node v10.19.0, npm 6.13.4, Alfred 4.0.9

如果你还不了解Alfred, 点此进入

废话不多说, 下面就用nodejs做个Alfred的workflow工具

功能需求:

  • 获取局域网的IP地址
  • 获取公网的IP地址
  • 输入IP地址查询归属地

因为我本人是从事前端开发的,nodejs对我来说并不陌生,所以今天就讲讲ndoejs开发workflow插件

制作初衷:我做的移动端项目很多,常常需要手机与电脑连接一个局域网下进行调试,每次都要查询一下自己的网卡IP。很容易就把自己给累死(哈哈)

先上效果图

  • 直接输入ip 20200716145037-alfred-workFlow_2020-07-16

  • 直接输入ipp 20200716145149-alfred-workFlow_2020-07-16

  • 输入ip + IP地址 20200716145304-alfred-workFlow_2020-07-16

搞起来

开始前需要了解一下alfy

  • 1. 打开alfred的Preferences,找到WorkFlows,选择列表底部的+号,选择Blank Workflow

20200716150500-alfred-workFlow_2020-07-16

  • 2. 填写插件名字,描述,分类及版本信息,作者,网站。图标找个喜欢的拖拽到右侧方框里就行了

20200716150929-alfred-workFlow_2020-07-16

Bundle Id必须填写

  • 3. 空白区域点击右键,选择Inputs => Script Filter,会弹出一个框

20200716152319-alfred-workFlow_2020-07-16

  • 4. 如下填写, 填写之后点击save

20200716154601-alfred-workFlow_2020-07-16

  • 5. 点击列表中,新建的workFlow选择open in Finder

20200716154950-alfred-workFlow_2020-07-16

  • 6. 用自己顺手的编辑器(我用的vscode)打开项目文件夹,并调出终端,在当前文件夹执行npm init -y

20200716165702-alfred-workFlow_2020-07-16

运行完之后需要安装一下依赖

npm i alfy ip --save
  • 7. 根目录新建index.js

    const alfy = require("alfy");
    const ip = require("ip");
    
    const localNetWork = ip.address();
    
    alfy.output([
        {
            title: "局域网地址:" + localNetWork,
            subtitle: "Press ⌘L to see the full error and ⌘C to copy it.",
            arg: localNetWork
        }
    ]);
    

    终端运行一下node index.js,查看输出是否正常,如下正常输出就over 20200716170905-alfred-workFlow_2020-07-16

  • 8. 调出alfred出入框窗口,输入ip, 显示如下就成功了

20200716171322-alfred-workFlow_2020-07-16

  • 9. 回车将结果放到剪切板(回到workflow页面, 右键弹出菜单,选中,点击后会弹出窗口,直接点击save保存即可~)

20200716171530-alfred-workFlow_2020-07-16


到这里基本流程已经结束,剩下的还需同志们继续努力💪

需要剩余功能的同学请在结尾处下载使用,需要申请一个ak参数,请自行填写

20200716174434-alfred-workFlow_2020-07-16

最后