【问题标题】:Can't exclude node_modules directory during serverless packaging在无服务器打包期间无法排除 node_modules 目录
【发布时间】:2022-03-16 14:15:00
【问题描述】:

我已成功为 nodejs 配置了一个单独的无服务器 layer,其中包含我所有的应用 node_modules

serverless package 期间构建的单独层 zip 文件正确包含我所期望的(即仅 node_modules)。

然后我的package.patterns 设置如下所示,但无论我做什么,我的主要服务的 zip 文件仍然包含node_modules。我试过明确地做excludes:includes: 也没有成功。

由于node_modules继续被打包在main函数的zip包中,我无法在lambda web界面中查看该函数,因为它太大而无法显示。

任何人对如何正确地将我的 node_modules 放在单独的层中并将它们从主要功能包中取出有任何想法吗?我正在使用无服务器 0.70.0

serverless.yml sn-p

layers:
  nodeModules:
    name: ${self:service.name}-${opt:stage,'dev'}-nodeModules
    package:
      include:
        - ./**
    path: lambda_layers
    compatibleRuntimes:
      - nodejs14.x

...

package:
  patterns:
    - '!**'
    - '!node_modules/**'
    - utils
    - validation
    - '*.js'layers:

【问题讨论】:

    标签: node.js aws-lambda serverless-framework aws-lambda-layers


    【解决方案1】:

    问题原来是这个插件搞砸了,删除它后,所有的打包指令都可以正常工作。 删除 serverless-plugin-include-dependencies 的使用,一切正常。

    【讨论】:

    • 如果您解决了您的问题,您应该“关闭”您的问题
    • 如果我在这个屏幕上看到这个实际选项会很酷
    【解决方案2】:

    我也面临同样的问题,即使在排除 node_modules 之后,它也被包含在内,并且使用 serverless_ignore 插件等插件也没有帮助。

    最后,这个配置对我有用。

    包裹: 个别:真 排除: - 表 - 包.json - 包-lock.json 包括: - '!node_modules/**'

    试试这个。 (无服务器.yml) 主要变化是我现在使用包含,然后使用 blob 模式符号 (!) 来忽略 node_modules

    【讨论】:

      猜你喜欢
      • 2016-12-10
      • 2018-03-07
      • 2012-08-13
      • 2018-03-18
      • 2020-08-20
      • 2018-02-08
      • 2022-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多