简介
joaodfmota-serverless-plugin-typescript 是一个 npm 包,在使用 AWS Lambda 函数时,让开发者使用 TypeScript 进行开发,从而提高开发效率和代码质量。
安装
首先,需要使用 npm 进行安装:
npm install --save-dev joaodfmota-serverless-plugin-typescript
接下来,在 serverless.yml 文件中增加插件:
plugins: - joaodfmota-serverless-plugin-typescript
配置
在使用之前,需要对插件进行相关的配置。在 serverless.yml 文件中增加以下代码块:
custom: webpack: webpackConfig: './webpack.config.js' includeModules: forceInclude: - '@types/aws-lambda'
这里的 webpack 是用来打包 TypeScript 文件的,需要使用 webpack.config.js 文件进行配置。includeModules 则是用来告诉 webpack 哪些 Node.js 模块需要被打包进去,在这里我们需要将 @types/aws-lambda 强制包含进去。
接下来,创建 webpack.config.js 文件,并在文件中输入以下代码:
-- -------------------- ---- ------- ----- ---- - ----------------------------- ----- ------------- - --------------------------------- -------------- - - ------ ----------------- ------- ------- ----- ------------------------ - ------------- - ------------- ------------- - --------- ----- -- ------------ - ------ ----- -- -------- ----------------------- ---------- ----------------- -
这里,我们使用了 serverless-webpack 和 webpack-node-externals,entry 用来告诉 webpack 需要打包哪些文件,在这里使用 slsw.lib.entries 来指定,target 设置为 node,因为是打包 Node.js 代码,optimization 和 performance 都是关闭状态,devtool 使用 'nosources-source-map',防止源代码泄漏。最后,webpack.config.js 中使用了 nodeExternals(),将 node_modules 中的模块排除在外。
使用
使用插件进行 TypeScript 开发前,我们需要对 serverless.yml 进行修改:
provider: name: aws runtime: nodejs14.x functions: hello: handler: src/handler.hello
这里,我们指定了 AWS Lambda 函数的运行时环境和入口文件,入口文件为 src/handler.hello。接下来,我们在 src/handler.hello 中创建 TypeScript 文件:
-- -------------------- ---- ------- ------ - ---------------------- - ---- ------------ ------ ----- ------ ---------------------- - ----- ------- --------- -- - ----- - ---- - ------- - - --------------------------- ------ - ----------- ---- ----- ---------------- -------- ------- --------- -- - -
这里,我们引入了 aws-lambda 来获取 APIGatewayProxyHandler,并将 hello 设为默认导出。接下来,在命令行中使用以下命令构建打包文件:
npm run build
这里,我们需要在 package.json 中增加以下命令:
"scripts": { "build": "webpack --config webpack.config.js" },
执行完毕后,会在 dist 目录下生成打包文件。接下来,使用命令:
sls deploy
即可将打包文件部署至 AWS Lambda 中。在输出结果中,会给出函数的 URL,复制该 URL 至浏览器中,访问即可得到以下输出:
{ "message": "Hello, World!" }
至此,使用 joaodfmota-serverless-plugin-typescript 进行 TypeScript 开发的示例已经完成。
结论
joaodfmota-serverless-plugin-typescript 让我们可以使用 TypeScript 进行 AWS Lambda 函数的开发,让代码更加规范且易于维护,同时也提高了开发效率。为了使插件正常工作,我们需要使用 webpack 进行 TypeScript 文件的打包、安装相关模块,并对 serverless.yml 进行相关的配置。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60065f7c238a385564ab6a4b