npm 包 node_serverless_bundler 使用教程

阅读时长 3 分钟读完

在以 Serverless 为代表的无服务器计算时代中,Node.js 已经成为了构建函数式服务的主流语言。但是,在实际应用中,使用 Node.js 组织和管理无服务器函数的代码也面临一些挑战。这时候,npm 包 node_serverless_bundler 在无服务器场景中发挥了不可替代的作用。

它可以将多个 .js 文件打包成一个文件,消除了开发者构建和部署代码的一些麻烦。本文将向大家介绍 node_serverless_bundler 的使用方法,以及一些注意点。

安装

node_serverless_bundler 可以通过 npm 安装,使用以下命令即可:

打包

node_serverless_bundler 通过指定入口文件和依赖,打包生成一个文件。实现该功能需要先在项目根目录下创建一个入口文件 index.js,然后在 package.json 文件里添加如下配置:

其中:

  1. entry 是入口文件路径,即我们需要打包的入口文件;
  2. exclude 是需要从打包的文件中排除的依赖,常见的 SDK 如 aws-sdk 就是需要排除的。如果有其他需要排除的依赖,可以按照此格式在数组中加入;
  3. output 是打包后生成的文件路径;
  4. runtime 是指定 AWS Lambda 执行环境的版本,如 nodejs10.x、nodejs12.x 等。这里值得一提的是,AWS 对 nodejs 的支持一般都是滞后的,最稳定的版本是 nodejs10.x,其他版本可能有不兼容错误。

上面的配置在准备好后,就可以通过以下命令进行打包:

打包好的代码会输出到 dist 目录下。可以看到,该命令的执行需要在项目根目录下,也就是 package.json 文件所在的目录下。

示例代码

下面为大家提供一段简单的示例代码,用来说明如何使用打包好的文件:

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

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

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

从上面的代码可以看到,打包后的文件内容会暴露一个 handler 函数,函数的第一个参数是 event,第二个参数是 context。

注意点

  • 打包文件的入口 JS 文件建议只暴露一个函数(例如 handler 函数);
  • 不要尝试将 AWS SDK 等广泛使用的依赖打包到生成的文件中,否则将会增加文件大小;
  • 注意 runtime 版本的选择,不同版本可能会存在兼容性问题;
  • 在打包好代码后,我们需要将其上传到相应的服务中,并在其中调用 handler 函数。

结语

node_serverless_bundler 可以帮助我们更好地组织和管理无服务器函数的代码,消除了构建和部署过程中的一些麻烦。上面我们介绍了该包的基本使用方法以及注意点,并给出了一段示例代码。希望对大家有所帮助。

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

纠错
反馈