npm 包 serverless-plugin-custom-binary 使用教程

在使用 Serverless 框架开发 Serverless 架构应用时,我们常常需要将二进制文件打包到函数中去。而 serverless-plugin-custom-binary 就是一个可以轻松实现这个目标的 npm 包。本文将介绍如何使用 serverless-plugin-custom-binary 对 Serverless 应用中的二进制文件进行打包,并提供一些使用技巧和示例代码供参考。

安装 serverless-plugin-custom-binary

在初始化 Serverless 应用后,我们需要先安装 serverless-plugin-custom-binary。运行以下 npm 命令即可完成安装:

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

添加插件配置

安装完成后,在 serverless.yml 配置文件中添加 serverless-plugin-custom-binary 的配置信息。具体配置内容包括:

  • package.artifact 标记需要打包的二进制文件所在的目录;
  • package.include 打包时需要包含的文件,这里我们就将二进制文件名称列出;
  • plugins 引入 serverless-plugin-custom-binary 插件。

示例配置如下:

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

运行打包命令

完成配置后,即可在命令行中运行打包命令:

--- -------

此时,serverless-plugin-custom-binary 将会自动打包 serverless.yml 配置文件中指定的二进制文件,并将其打包至 Serverless 应用中。

使用技巧

除了基本的打包操作外,serverless-plugin-custom-binary 还提供了一些非常实用的配置选项,可以让我们更灵活地控制打包过程。以下是一些使用技巧:

支持多个二进制文件

只需将 package_include 数组中的文件名增加即可:

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

压缩二进制文件

使用 UPX 工具可将可执行文件压缩至更小的体积,可以将其和 Serverless 应用一同打包。只需在 package_include 数组中加入一个命令行即可:

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

显式设置二进制文件运行权限

有些二进制文件需要指定运行权限,否则可能会因权限不足而无法正常运行。可以使用 package_permissions 参数来指定特定文件的运行权限:

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

处理二进制文件

有时我们需要对打包过程中的二进制文件进行一些额外的处理操作,比如更改文件名或处理二进制文件的内容。可以自定义 package_plugin 脚本来自定义这样的操作:

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

以上示例中使用了 resolve 和 dos2unix 两个 npm 模块来演示自定义 plugin 的使用,读者可以根据自己的需求编写 custom plugin。

示例代码

下面是一段基本的 Serverless 应用代码,演示了 serverless-plugin-custom-binary 的使用方法:

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

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

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

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

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

在示例代码中,我们将一个名为 mybinary 的二进制文件打包至应用中,并在 handler.js 文件中读取了它。需要注意的是,我们在读取二进制文件时使用了相对路径,这意味着必须将它与 Serverless 文件一同上传至 AWS Lambda 中。

假设我们的 mybinary 文件是一个 ELF 可执行文件,我们运行命令

--- -------

后将收到以下提示:

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

这意味着我们的二进制文件已经被成功打包至 Serverless 应用中。

总结

serverless-plugin-custom-binary 是一款强大简便的 npm 包,它可以让我们轻松地将二进制文件打包至 Serverless 应用中,并提供了很多实用的配置选项供我们进行定制化开发。在使用 Serverless 框架时, serverless-plugin-custom-binary 将是你的得力助手。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/serverless-plugin-custom-binary


猜你喜欢

  • npm包@microsoft/stream-collator使用教程

    在前端开发中,许多项目都需要处理数据的排序、筛选等任务。这些任务对于程序员来说都是比较繁琐而且容易出错的。Microsoft 公司提供了一个 npm 包:@microsoft/stream-colla...

    4 年前
  • npm 包 @microsoft/package-deps-hash 使用教程

    什么是 @microsoft/package-deps-hash @microsoft/package-deps-hash 是一个用于生成包依赖哈希值的 npm 包,它可以帮助前端开发者管理项目的依赖...

    4 年前
  • npm 包 @types/timsort 使用教程

    随着前端技术的不断发展,我们经常需要使用各种 npm 包来方便地实现我们的需求。@types/timsort 就是其中的一个 npm 包,用于实现数组的排序。在本文中,我们将详细介绍 @types/t...

    4 年前
  • npm 包 @types/jju 使用教程

    简介 @types/jju 是一个使用 TypeScript 编写的 JSON 语法解析器库。它能够将字符串解析为 JSON 对象,并支持 JSON5 和 JSONC (JSON with Comme...

    4 年前
  • npm 包 @microsoft/sp-build-node 使用教程

    前言 在进行前端开发过程中,我们难免会遇到需要使用一些 Node.js 开发的工具或者库的情况,其中有一个重要的工具是 @microsoft/sp-build-node。

    4 年前
  • npm 包 @rushstack/debug-certificate-manager 使用教程

    简介 @rushstack/debug-certificate-manager 是一个 Node.js 的 debug 管理工具。它可以帮助开发者管理和生成证书,以便使用 HTTPS 进行开发和调试。

    4 年前
  • npm 包 eslint-plugin-tsdoc 使用教程

    在前端开发中,代码编写规范是非常重要的。使用 eslint 工具可以有效地帮助我们保持代码风格的一致性。eslint-plugin-tsdoc 是一个针对 TypeScript 项目的扩展规则集,用于...

    4 年前
  • npm 包 @rushstack/eslint-plugin 使用教程

    前言 随着前端技术不断发展,代码质量的要求也越来越高,特别是在团队协作的场景中,为了方便不同开发者的协作,需要保证代码的规范和一致性。在前端开发中,使用 ESLint 是一个很好的选择。

    4 年前
  • npm 包 @microsoft/gulp-core-build-mocha 使用教程

    介绍 在前端工程化构建过程中,自动化测试是非常重要的环节。其中一个测试框架 Mocha,简单易用,但它还需要结合其他工具才能实现自动化测试。 @Microsoft/gulp-core-build-mo...

    4 年前
  • npm 包 @types/braces 使用教程

    @types/braces 是一个用于 TypeScript 的 npm 包,可以帮助开发者快速构建具有括号匹配功能的字符串模板。在前端开发中,我们经常需要对字符串进行拼接和处理,使用 @types/...

    4 年前
  • npm 包 @cirrusct/utils 使用教程

    前言 随着前端技术的不断发展,越来越多的工具、框架和库开始出现在我们的开发生态系统中,这些工具可以帮助我们更快速地完成开发工作,提高效率。其中,npm 包是前端开发中非常重要的一个环节。

    4 年前
  • npm 包 @cirrusct/error 使用教程

    在前端开发过程中,经常会遇到各种错误和异常情况。为了更好地处理这些情况,可以使用 @cirrusct/error 这个 npm 包。本文将详细介绍如何使用这个包来更好地处理错误和异常情况。

    4 年前
  • npm 包 @cirrusct/core-types 使用教程

    简介 在现代前端开发中,npm 包已经成为我们必不可少的工具,而 @cirrusct/core-types 就是一个非常优秀的 npm 包。它为 TypeScript 项目提供了一系列的 Typesc...

    4 年前
  • npm包rdme使用教程

    什么是npm npm是Node.js软件包管理器,它允许开发者从npm注册中心下载和安装开源JavaScript代码包。它也是管理项目依赖项和版本控制的一种方式。 rdme是什么 rdme是一种很有用...

    4 年前
  • npm 包 @types/insert-module-globals 使用教程

    在前端开发的过程中,我们经常会用到各种 npm 包来解决一些问题。其中,@types/insert-module-globals 这个包是一个用于 TypeScript 项目的 npm 包,可以帮助我...

    4 年前
  • npm 包 ts-map 使用教程

    简介 ts-map 是一款基于 TypeScript 编写的 Map 数据结构的包,提供了高效、类型安全的 map 操作。本文将介绍 ts-map 的安装和使用,以及一些常用的操作。

    4 年前
  • npm 包 @tradie/node-scripts 使用教程

    概述 随着现代 web 技术的不断发展,前端开发的工具也越来越多样化,需要用到的模块也越来越多。npm 是一个流行的包管理器,它为前端开发者提供了大量可重用的模块,方便了项目的快速开发和维护。

    4 年前
  • npm包for-own.macro使用教程

    在前端开发中,使用编译工具可以大大提高开发效率,而在编译过程中,转换工具往往需要进行一些复杂的操作。对于这一类的操作,我们可以使用babel插件来实现自定义的编译过程,但是开发过程中的性能问题可能会使...

    4 年前
  • npm包 @types/css-tree 使用教程

    什么是 @types/css-tree @types/css-tree 是一个 TypeScript 类型定义文件的 npm 包。它提供了对 css-tree 可用的类型定义,以便在 TypeScri...

    4 年前
  • npm 包 reasonably-typed 使用教程

    前言 在前端开发中,经常需要使用很多第三方的库和框架,在这些库和框架的使用过程中,类型检查是必不可少的一环。虽然现在的 JavaScript 有了一些静态类型检查工具,如 TypeScript,但在实...

    4 年前

相关推荐

    暂无文章