Как использовать excludeDevDependencies? - PullRequest
0 голосов
/ 19 октября 2018

После прочтения документа: https://serverless.com/framework/docs/providers/google/guide/packaging#development-dependencies

Я сделал образец для проверки этой конфигурации.

Вот мой serverless.yml:

service: exclude-development-dependencies

provider:
  name: google
  runtime: nodejs
  project: just-aloe-212502
  credentials: /Users/ldu020/workspace/nodejs-serverless-framework/.gcp/nodejs-starter-7e52b0f6fe39.json

plugins:
  - serverless-google-cloudfunctions

package:
  exclude:
    # - node_modules/**
    - .gitignore
    - .git/**
  excludeDevDependencies: true

functions:
  excludeDevDependencies:
    handler: excludeDevDependencies
    events:
      - http: path

ПроблемаexcludeDevDependencies работает нормально только когда я комментирую exclude - node_modules/**.

Он сгенерирует каталог .serverless и exclude-development-dependencies.zip включает в себя dependency модули узлов.

Но для GCP вам не нужно загружать node_modules.Вам просто нужно загрузить файлы package.json и package-lock.json в GCP.GCP установит node_modules на основе package-lock.json.

Итак, когда я должен использовать excludeDevDependencies?

Ответы [ 2 ]

0 голосов
/ 01 августа 2019

У меня была такая же проблема, и если я использовал include из node_modules, то также включались зависимости dev.Через некоторое время я обнаружил, что вам просто нужно добавить node_modules и любую интересующую вас папку , не исключая их , используя:

  exclude:
    - '!folderyouwanttoadd/**'
    - '!fileyouwanttoadd'
    - '!node_modules/**'

Чтобы включить это excludeDevDependencies: trueне является обязательным, потому что он установлен по умолчанию.Я думаю, что это ошибка Serverless, она должна работать просто.

0 голосов
/ 29 октября 2018

Это ожидаемое поведение, нет?

Вы не ставите node_modules в исключение.Любые зависимости, которые у вас есть в package.json, должны быть загружены в ваш серверный пакет.Любые dev-зависимости в package.json будут исключены, если у вас есть excludeDevDependencies: true.

. GCP установит node_modules на основе package-lock.json.

IНе знаете, что такое GCP, но как вы ожидаете, что он установит package.json на lmabda, когда нет локального хранилища файлов?

Любые узлы_модуля, необходимые для запуска lambda, ДОЛЖНЫ быть включены в ваш серверный пакет.

...