无服务器打包时如何包含文件夹但排除该文件夹内的某些文件?

How to include folder but excluding some files inside that folder when packaging for serverless?

我想包含 node_modules,但排除 .bin 目录以及 .cache 和 .yarn-integrity 文件,因为它们在 lambda 上占用 space。

        exclude:
            - ./**
            - '!node_modules/**'
            - node_modules/.cache
            - node_modules/.bin
            - node_modules/.yarn-integrity

同样,我想包含 'server' 文件夹,但排除测试和 eslint 配置文件:

        exclude:
            - ./**
            - '!server/**'
            - server/**/*.test.js
            - server/.eslintrc.js

但都没有用,文件也没有被排除。正确的做法是什么?

您可以包含 node_modules/ 目录同时排除 node_modules/.bin 目录,如下所示:

package:
   exclude:
     - node_modules/.bin/**

默认情况下仅排除这些目录:

.git/**
.gitignore
.DS_Store
npm-debug.log
.serverless/**
.serverless_plugins/**

因此您无需指定要包含 node_modules/server/ - 它们将是默认值。只需指定要排除其中的哪些子目录。

来源:https://serverless.com/framework/docs/providers/aws/guide/packaging/