|--serverless.yml
|--lib/
|--node_modules/
|--api/
|--manageclient/
|--addClient/
|--handler.js
这是我的文件夹结构, 如何使用无服务器部署函数,使其仅包含handler.js和node_modules /和lib /.
请指定要在main serverless.yml上写的功能命令?
我的YML功能声明
handler: api/manageclient/addClient/addclient.addclient
package:
exclude:
- ./*
- !api/manageclient/addClient/**
- !api/node_modules/**
- !api/lib/**
答案 0 :(得分:1)
您可以使用包和exclude
配置来更好地控制打包过程。
将此添加到您的serverless.yml:
package:
include:
- node_modules/**
- lib/**
functions:
yourfunctionname:
handler: api/manageclient/addclient/handler.handler
有关包含/排除文件夹的更多信息:https://serverless.com/framework/docs/providers/aws/guide/packaging/
答案 1 :(得分:1)
像这样更改您的serverless.yml文件:
package:
exclude:
-./**
include:
-node-modules/**
-lib/**
以及您的功能
function:
functionname:
handler: api/manageclient/addclient/handler.handler
package:
include:
-api/manageclient/addclient/handler.js
答案 2 :(得分:0)
这是我的结构:
package:
individually: true
exclude:
- ./**
在我的功能中
functions:
lambda:
handler: dist/index.handler
package:
include:
- 'dist/**/*'
- '!dist/**/*.map'
- '!node_modules/aws-sdk/**/*'
首先,您告诉无服务器您要排除所有内容,然后说每个功能都将包含自己的文件。
在每个函数中,我将所有内容都包含在特定文件夹内(如dist
),然后将特定文件排除为以.map
结尾的文件或例如节点内部的aws-sdk
库模块。