代码打包

在本地使用第三方工具将代码打包,可以很方便地将云函数项目工程化。 并且可以引入第三方模块,拓展云函数的功能。 打包后的代码,可用使用命令行工具来部署到知晓云。 这里以 webpack 为例,介绍一下云函数打包方法。

webpack 配置(版本:webpack@4)

由于 webpack 4 提供了默认配置,所以必要的配置只有以下这几个。 如果需要其他配置,请参照 webpack 官方文档

// webpack.config.js
module.exports = {
  output: {
    path: __dirname,
    filename: 'index.js',
    libraryTarget: 'commonjs-module',
  },
  target: 'node',
};

target 设置为 'node',webpack 会打包生成一个可以运行在 node 环境下的文件(使用 Node.js 自带的 require 来引入模块, 并且内置模块不会被打包)。

函数目录下的 ./src/index.js 为入口文件, 并将打包后的文件默认保存到指定的目录中,这里我们把打包好的文件保存到函数目录下的 index.js

项目示例

本示例会在本地创建一个名为 func_test 的云函数,并打包、部署到知晓云。

项目初始化

  1. 在本地创建一个云函数。

接下来,我们进入 func_test 目录。

  1. 初始化 package,生成 package.json 文件。

  1. 新建 src 文件夹,用来存放源码。 接下来会使用 webpack 将 src 里的代码,打包并保存到 func_test 目录下的 index.js

  2. 新建 webpack.config.js 文件。

  3. 安装 webpack

使用 npm 安装:

或者使用 yarn 安装:

按上述步骤做完之后,项目文件结构应该是这样子:

webpack 配置

package.json script 配置

写代码

默认的入口文件,是 src/index.js 文件。 入口文件必须暴露出一个函数,签名为function (event, callback)。 打包后,该函数就是云函数的入口函数 main。 参数 event、callback 的说明,请参照云函数文档

info 云函数的 return 返回不能为 undefined

打包

在项目根目录下执行npm run build,即可启动 webpack 进行代码打包。

部署

在项目根目录下运行:

Last updated

Was this helpful?