在 Serverless 世界中,开发者都喜欢像搭积木一样去构建应用,需要什么功能就找什么插件/包。但是一旦你的应用让人倾心,需要大规模复制和管理,就逃不开类似 monorepo 的大妈级需求。针对这个问题,我们不妨用 serverless-shared-library 这个 npm 包来协助我们进行团队协作设计和构建。
serverless-shared-library 简介
serverless-shared-library 是为 Serverless Framework 设计的,旨在供开发者在多个 Serverless 项目之间共享可重用代码。如其名,这个 package 可以看做一本类似于技术参考书的共享库,其中包含了 Serverless 开发过程中的常见代码块、工具函数、以及特定应用程序所需的代码。
serverless-shared-library 的特点
- 预制代码块 针对一些功能模块,开发者可以避免重复造轮子,目前的库内预制的功能包括 S3 静态站托管和 Cognito 用户池自定义域名。
- 可自定义目录结构 由于使用者需求的差异,serverless-shared-library 支持使用者自定义项目的目录结构
- 易于测试 serverless-shared-library 内置自动化测试,且特殊设计成可在两个不同的 Serverless Framework 项目之间交叉测试。
serverless-shared-library 使用教程
下面我们将通过一个简单的示例来演示 serverless-shared-library 的使用方法。
安装 serverless-shared-library
使用 npm 安装:
$ npm install serverless-shared-library
或使用 yarn 安装:
$ yarn add serverless-shared-library
创建 shared library 项目
我们首先需要创建一个 shared library 项目:
$ mkdir shared-lib && cd shared-lib $ serverless create --template aws-nodejs
安装依赖
安装依赖包:
$ npm install --save serverless-finch graphql
添加服务和函数
在 handler.js 文件中添加服务和函数:
-- -------------------- ---- ------- ---- -------- ----------------------------- - ----- ------- -------- -- - ------ - ----------- ---- ----- ---------------- -------- ------ ---- ------- --------- --- -- -- -------------------------- - ----- ------- -------- -- - ------ - ----------- ---- ----- ---------------- -------- ------ ---- ---- --------- --- -- --
添加 Serverless Framework 配置
在 serverless.yml 文件中添加 Serverless Framework 的配置:
-- -------------------- ---- ------- -------- ---------- ----------------- -------- ------- --------- ----- --- -------- ---------- ---------- ---------- --------- ----- --------------- ----------- ----------- --------- ---------- -------- -------- ---------------------- ------- - ----- ----- ------- ------- --- ----- -------- ------------------- ------- - ----- ----- ---- ------- ---
发布 shared library
发布 shared library:
$ serverless deploy
当 shared library 项目发布完成后,会返回一个 sharedLibPackageCloudFormation 变量。在组织内其他 Serverless Framework 项目中,你可以根据这个变量来使用 shared library。举个例子,对于使用 JavaScript Lambda function 的项目,可以通过以下方式来引入 shared library:
-- -------------------- ---- ------- ----- ----------------------- - ----------------------------------------- ----- ------------ - - ---------- -------------------------------- - -------------- - - -------- - ------------------------------------- - -
通过这种方式,你就可以将多个 Serverless Framework 项目中重复使用的代码抽离到 shared library,从而大大提高了代码复用性,同时增加了代码可维护性。
总结
serverless-shared-library 是一个有用的 npm 包,可以大大提高 Serverless Framework 项目的代码复用性,节省开发人员宝贵的时间。
如果你想开始使用 serverless-shared-library,你需要:
- 理解 serverless-shared-library 的特点和优势
- 安装 serverless-shared-library
- 创建 shared library 项目
- 安装依赖
- 添加函数
- 配置 Serverless Framework
- 发布 shared library
通过上述步骤,你就可以愉快地享受 serverless-shared-library 带来的代码重用和维护之道了。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67905