You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Serverless部署报错:无文件匹配包含/排除规则求解决方案

解决Serverless部署「No file matches include / exclude patterns」报错

问题场景

部署Serverless应用时触发No file matches include / exclude patterns错误,此前添加exclude字段排除node_modules时首次出现该错误,移除exclude字段后问题仍未解决。相关配置及报错信息如下:

Serverless.yml配置

service: lambda-woo-user-service-dev-app
provider:
  name: aws
  runtime: nodejs16.x
  stage: dev
  region: us-east-1
  memorySize: 2048
  apiGateway:
    restApiId: pc92cc9jz8
    restApiRootResourceId: 3y783dgut3
  provider.iam.role.statements:
    - Effect: "Allow"
      Action:
        - "s3:*"
      Resource: { "Fn::Join": ["", ["arn:aws:s3:::wooo-s3", "/*"]] }
plugins:
  - serverless-dotenv-plugin
  - serverless-plugin-warmup
custom:
  warmup:
    default:
      enabled: true # Whether to warm up functions by default or not
      folderName: ".warmup" # Name of the folder created for the generated warmup
      cleanFolder: false
      memorySize: 256
functions:
  app:
    handler: server.handler
    warmup:
      default:
        enabled: true
    timeout: 120
    events:
      - http:
          path: /
          method: ANY
          cors: true
          # contentHandling: CONVERT_TO_BINARY
      - http:
          path: /{proxy+}
          method: ANY
          cors: true
          # contentHandling: CONVERT_TO_BINARY

报错信息

$ serverless
DOTENV: Loading environment variables from .env:
         - PORT
         - APP_NAME
         - EMAIL

? Do you want to deploy now? Yes
DOTENV: Loading environment variables from .env:
         - PORT
         - APP_NAME
         - EMAIL
        
Deploying lambda-woo-user-service-dev-app to stage prod (us-east-1)
WarmUp: Creating warmer "default" to warm up 1 function

× Stack lambda-woo-user-service-dev-app-prod failed to deploy (2s)
Environment: win32, node 18.12.1, framework 3.25.1, plugin 6.2.2, SDK 4.3.2
Credentials: Local, environment variables                                                                                                                              
Docs:        docs.serverless.com
Support:     forum.serverless.com
Bugs:        github.com/serverless/serverless/issues

Error:
No file matches include / exclude patterns

1 deprecation found: run 'serverless doctor' for more details

可行解决方案

1. 修正IAM角色配置语法错误

你的serverless.yml中IAM角色声明的写法存在语法错误,正确的嵌套结构应该是provider.iam.role.statements,而非直接在provider下写provider.iam.role.statements。错误的配置可能导致Serverless解析异常,进而影响打包逻辑。

修正后的provider部分:

provider:
  name: aws
  runtime: nodejs16.x
  stage: dev
  region: us-east-1
  memorySize: 2048
  apiGateway:
    restApiId: pc92cc9jz8
    restApiRootResourceId: 3y783dgut3
  iam:
    role:
      statements:
        - Effect: "Allow"
          Action:
            - "s3:*"
          Resource: !Join ["", ["arn:aws:s3:::wooo-s3", "/*"]]

2. 清理Serverless缓存并重新部署

之前的exclude配置可能残存在本地缓存中,导致打包逻辑异常。执行以下命令清理缓存并重新部署:

serverless deploy --no-cache

如果问题仍存在,可以删除项目根目录下的.serverless文件夹,再重新执行部署命令。

3. 显式指定打包文件

添加package字段显式声明需要打包的文件,覆盖默认的include/exclude规则,避免隐性规则导致的匹配问题。示例配置:

package:
  include:
    - server.js # 对应handler指定的文件
    - node_modules/** # 包含所有依赖
    - .env # 包含环境变量文件
    - src/** # 如果有源码目录,按需添加

根据你的实际项目文件结构调整include列表。

4. 检查文件结构与handler路径

确认handler: server.handler对应的文件存在:项目根目录下是否有server.js(或server.ts,如果使用TypeScript),且文件中正确导出了handler函数。如果文件路径错误或不存在,会触发该报错。

5. 调整Serverless框架版本

当前使用的Serverless框架版本(3.25.1)可能存在已知bug,尝试升级到最新稳定版或降级到3.20.x系列版本:

# 升级到最新版
npm install -g serverless@latest

# 降级到指定版本
npm install -g serverless@3.20.0

内容的提问来源于stack exchange,提问作者Tayyab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 00:50:45