从同一文件夹中包含无服务器 yml 中的排除包
Include exclude packages in serverless yml from same folder
我有一个 node_modules 文件夹,我只想排除几个模块,但在打包时应该添加其他模块。我该怎么做 that.Also 如何使用正则表达式排除某些模块。就像在我的 node_modules 中一样,我创建了以 md-request、md-models 等开头的自定义模块,所以我只想从打包中排除这些模块。
提前致谢。
很可能您正试图排除开发依赖性。使用 npm i some-dependency --save-dev
安装开发依赖项,默认情况下,Serverless 不会将它们打包到最终工件中。
如果这还不够,您可以排除所有内容,仅包含您需要的内容。
您可以了解 Serverless 在打包工件时的行为方式,以及如何 exclude/include 依赖于 official docs
这是一个示例(从他们的文档中提取)排除 node_modules 但要保留 node_modules/node-fetch(这正是您要找的) ):
package:
exclude:
- node_modules/**
- '!node_modules/node-fetch/**'
这就是您如何 仅包含您需要的内容:
package:
exclude:
- src/**
include:
- src/function/handler.js
编辑:在 OP 的评论之后,这里是处理所需行为的方法:
package:
exclude:
- node_modules/my_module_1/**
- node_modules/my_module_2/**
- node_modules/my_module_3/**
- node_modules/my_module_4/**
如果模块名称彼此非常接近,如上,您可以使用通配符*
将它们全部排除在一行中:
package:
exclude:
- node_modules/my_module_*/**
编辑 2:这是一个工作示例(看到我排除了 aws-sdk):
package:
exclude:
- node_modules/aws-sdk/**
由于包太大,我无法通过 AWS Lambda 的控制台看到它,我附上了两张截图 - 一张有排除,一张没有排除(查看包大小如何变化)。
排除:
没有排除:
这样你甚至不需要添加 '!node_modules/whatever-i-want-to-keep' 参数
编辑 3:在示例项目中使用 *
通配符,手动创建 node_modules 和相应的 my_module_* 目录
我有一个 node_modules 文件夹,我只想排除几个模块,但在打包时应该添加其他模块。我该怎么做 that.Also 如何使用正则表达式排除某些模块。就像在我的 node_modules 中一样,我创建了以 md-request、md-models 等开头的自定义模块,所以我只想从打包中排除这些模块。 提前致谢。
很可能您正试图排除开发依赖性。使用 npm i some-dependency --save-dev
安装开发依赖项,默认情况下,Serverless 不会将它们打包到最终工件中。
如果这还不够,您可以排除所有内容,仅包含您需要的内容。
您可以了解 Serverless 在打包工件时的行为方式,以及如何 exclude/include 依赖于 official docs
这是一个示例(从他们的文档中提取)排除 node_modules 但要保留 node_modules/node-fetch(这正是您要找的) ):
package:
exclude:
- node_modules/**
- '!node_modules/node-fetch/**'
这就是您如何 仅包含您需要的内容:
package:
exclude:
- src/**
include:
- src/function/handler.js
编辑:在 OP 的评论之后,这里是处理所需行为的方法:
package:
exclude:
- node_modules/my_module_1/**
- node_modules/my_module_2/**
- node_modules/my_module_3/**
- node_modules/my_module_4/**
如果模块名称彼此非常接近,如上,您可以使用通配符*
将它们全部排除在一行中:
package:
exclude:
- node_modules/my_module_*/**
编辑 2:这是一个工作示例(看到我排除了 aws-sdk):
package:
exclude:
- node_modules/aws-sdk/**
由于包太大,我无法通过 AWS Lambda 的控制台看到它,我附上了两张截图 - 一张有排除,一张没有排除(查看包大小如何变化)。
排除:
没有排除:
这样你甚至不需要添加 '!node_modules/whatever-i-want-to-keep' 参数
编辑 3:在示例项目中使用 *
通配符,手动创建 node_modules 和相应的 my_module_* 目录