yarkov
@yarkov
Проект "Жизнь после смерти" - lifeafterdeath.ru

Почему lerna выполняет команду во временном каталоге?

Есть монорепа с lerna на борту.
Есть в этой репе пакет packages/browser-validator.
У пакета есть хук prepare, в котором выполняется yarn build.
Задумывалось так, чтобы в момент установки пакета билдить его и не хранить файлы билда в репозитории.
Если в монорепе выполнить yarn install, то всё работает как надо, билд собирается в каталог packages/browser-validator/dist

Есть проект, в котором монорепа используется как зависимость
// package.json проекта
"dependencies": {
    "@frontend/core": "git+ssh://git@gitlab.com/frontend/core.git",
}


Выполняю в проекте yarn install
// лог из терминала
yarn install v1.22.5
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents@2.3.2: The platform "linux" is incompatible with this module.
info "fsevents@2.3.2" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
$ lerna run --stream --sort prepare
lerna notice cli v4.0.0
lerna info Executing command in 1 package: "yarn run prepare"
browser-validator: yarn run v1.22.5
browser-validator: $ yarn build
browser-validator: $ run-s build:js build:pug:*
browser-validator: $ cross-env NODE_ENV=production rollup -c rollup.config.js
browser-validator: src/main.js → dist/main.js...
browser-validator: created dist/main.js in 1.3s
browser-validator: $ pug --pretty --out ./dist --obj ./src/lang-resources/ru.json src/templates/ie-ru.pug
browser-validator:   rendered /home/user/.cache/yarn/v6/.tmp/496ddf2cf95cfa229315794edfe291a4.c48e743c78c6014987c0ca4b2b560662464349a9.prepare/packages/browser-validator/dist/ie-ru.html
browser-validator: $ pug --pretty --out ./dist --obj ./src/lang-resources/en.json src/templates/ie-en.pug
browser-validator:   rendered /home/user/.cache/yarn/v6/.tmp/496ddf2cf95cfa229315794edfe291a4.c48e743c78c6014987c0ca4b2b560662464349a9.prepare/packages/browser-validator/dist/ie-en.html
browser-validator: Done in 3.28s.
lerna success run Ran npm script 'prepare' in 1 package in 3.4s:
lerna success - browser-validator


Хук срабатывает, но билд происходит не в
./node_modules/@frontend/core/packages/browser-validator/dist
, а в
/home/user/.cache/yarn/v6/.tmp/496ddf2cf95cfa229315794edfe291a4.c48e743c78c6014987c0ca4b2b560662464349a9.prepare/packages/browser-validator/dist
.

Как заставить выполнять команду в каталоге проекта?
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
07 мая 2021, в 11:09
100000 руб./за проект
07 мая 2021, в 11:08
45000 руб./за проект
07 мая 2021, в 11:06
10000 руб./за проект