Действия Github не работают при локальном импорте JS monorepo
У меня проблема с использованием рабочих пространств npm с Github Actions.
У меня следующая структура папок
Корень проекта:
- <- с
"workspaces": ["./shared", "./clients/project-a"]
- <- с
"compilerOptions":{"target":"es5","module":"esnext"},"references":[{"path":"./shared"},{"path":"./clients/project-a"}]
-
./shared/*
- <- расширение
../tsconfig.json
, с участием"composite":true
-
./package.json
<- со скриптом"prepare": "npm run build"
- <- расширение
-
./clients/project-a/*
-
./tsconfig.json
<- расширение../../tsconfig.json
-
Машинопись
4.3.2
на обоих и.
В моей локальной среде у меня есть узел
16.2.0
.
В локальной среде очистка node_modules и package-lock, запуск установки из корневого каталога и сборка с использованием
npm run build -w @my/project-a
он строится успешно без ошибок.
Когда я пытаюсь запустить те же команды (установить и построить) внутри рабочего процесса Github Action, он не создает
clients/project-a
с участием
exit code 1
а также
Cannot find module: '@my/shared'. Make sure this package is installed.
на первом
import { X } from '@my/shared';
name: Build clients
on:
push:
branches:
- mybranch/*
jobs:
build:
name: Build
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.2.x]
steps:
- uses: actions/checkout@v2
with:
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install modules
run: |
npm install --legacy-peer-deps
- name: build clients
run: |
npm run build -w @my/project-a
env:
CI: false
(отступ мог сломаться при копировании / вставке)
Кто-нибудь может помочь мне разобраться, в чем проблема?
####### Обновления #######
Я обнаружил, что удаление
@my/
из
shared
имя пакета, он работает. Почему? Как мне сохранить префикс?