npm 包 jxa-browserify 使用教程

阅读时长 5 分钟读完

简介

jxa-browserify 是一个能够在 Node.js 中运行 JXA(JavaScript for Automation)脚本的 NPM 包。JXA 是一种使用 JavaScript 脚本编写 Mac 应用程序的技术,但是它不能很好地支持 Node.js 环境,因此 jxa-browserify 应运而生。通过 jxa-browserify,我们可以在 Node.js 中使用 JXA 并调用 macOS 的 API。

安装

使用 npm 进行安装:

使用

基本使用

引入 jxa-browserify:

使用 jxa.run() 方法并将 JXA 脚本作为参数传入即可执行脚本:

如果在脚本中想要使用 Node.js 提供的方法,需要在脚本中引入 Node.js 的全局对象 global 并使用它来调用 Node.js 的 API:

传递参数

可以通过 jxa.run() 方法的第二个参数传递参数给 JXA 脚本:

回调函数

可以将一个 Node.js 回调函数作为参数传入 JXA 脚本,并在脚本中调用回调函数:

-- -------------------- ---- -------
-------- ----------------- -
    -------------------- -------- -------------
-

------------------ -- -
    ----- --- - --------------------------------- -- ---------
    ---------------------------- - -----
    --------------- ---- ------- -- ------
-- ----------

ES6 模块

JXA 不支持 ES6 模块,因此我们需要使用 Babel 将 ES6 模块转化为 CommonJS 模块,然后再传入 jxa-browserify:

  1. 引入 jxa-browserify:

  2. 安装 Babel 依赖:

  3. 在代码中使用 babelify 转化 JavaScript 代码:

    -- -------------------- ---- -------
    ----- -------- - -----------------------------------------
    ----- --- - --------------------------
    
    ----- - ---- - - ----------------------- -
        -------- -
            --------------------- -
                -------- -
                    ----- ----------
                --
            ---
        --
    ---
    
    ---------- -- -
        ----------- -- ----
    ---

示例代码

下面是一个在 JXA 中使用 Node.js 的示例:

-- -------------------- ---- -------
----- --- - --------------------------

---------- -- -
    ----- - ------ - - -----
    ----- ---- - -----------------------
    ----- -- - ---------------------
    ----- -- - ---------------------
    
    ----- -------- - ----------------------- -------------
    ----- ------- - ------ --------
    -------------------------- -------- ---------
    
    ----- --- - --------------------------------- -- ---------
    ---------------------------- - -----
    ----------------------------- -----------
---

总结

jxa-browserify 是一个方便在 Node.js 中使用 JXA 的 NPM 包。通过 jxa-browserify,我们可以在 Node.js 中使用 macOS 的 API,不仅可以提高开发效率,也可以实现很多之前无法在 Node.js 中实现的功能。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005687a81e8991b448e470e

纠错
反馈