Lerna на AWS CodeBuild & CodeDeploy не устанавливает локальные зависимости - PullRequest
1 голос
/ 02 мая 2020

Итак, у меня есть проект Typescript, называемый backend, с такой зависимостью в пакете. json:

"dependencies": {
  "@the-couple-game/helpers": "^1.0.0",
}

А помощники (также Typescript) находятся в другой папке с пакетом. json например:

{
    "name": "@the-couple-game/helpers",
}

Таким образом, выполнение lerna bootstrap должно связать их и установить @ the-couple-game / helpers в модули узла backend, которые он выполняет локально.

Однако, делая то же самое (с --no-ci, потому что я не хочу npm ci), используя Codebuild с использованием приведенного ниже buildspe c .yml, не добавляем @ the-couple-game / helpers в бэкэнд node_modules. Поэтому, если я запустил транспонированный индекс серверной части. js он будет жаловаться на отсутствующий модуль.

version: 0.1
phases:
  install:
    commands:
      - npm install -g lerna
  pre_build:
    commands:
      - lerna bootstrap --no-ci --concurrency 4
  build:
    commands:
      - lerna run build --concurrency 4
artifacts:
  files:
    - "**/*"

Сейчас мне придется прибегнуть к ручному выполнению lerna bootstrap после развертывания в CodeDeploy (используя скрипт вызывается из appspe c .yml), поэтому он устанавливает отсутствующий модуль, но не должен ли Codebuild охватить эту часть?

Спасибо.

1 Ответ

2 голосов
/ 07 мая 2020

Так получается, AWS CodePipeline не поддерживает символические ссылки в исходном коде (в моем случае Codebuild). Ссылка

Поэтому после развертывания мне нужно будет создать ссылку, используя сценарий оболочки, чтобы создать ссылки, что не является дорогой работой для моего экземпляра micro ec2.

...