Решение, которое я нашел для этого, - это опция Yarn nohoist
в вашем корневом package.json
файле.
По умолчанию Yarn поднимает зависимости в корневой каталог, чтобы они могли совместно использоваться вашими пакетами. К сожалению, с Firebase это не сработает. Это означает, что вам нужно указать Yarn не поднимать зависимости, используемые вашими функциями Firebase.
Документация для nohoist
далеко не идеальна, но вот официальная запись в блоге об этом здесь: https://yarnpkg.com/blog/2018/02/15/nohoist/
Вероятно, вам нужно что-то вроде этого:
{
"workspaces": {
"packages": [
"packages/*"
],
"nohoist": [
"functions/core",
"functions/common",
"functions/**"
]
}
}
Имейте в виду, что здесь используется поле name
, используемое в package.json
файлах каждого пакета рабочей области. Итак, в этом примере предполагается, что в каталоге functions
есть package.json
с «функциями», как это name
.
functions/**
сообщает yarn не поднимать ни одну из зависимостей, указанных в packages/functions/package.json
. Однако это не работает для ваших общих пакетов пряжи, поэтому functions/core
и functions/common
нужно указывать отдельно.
Вам также необходимо включить свои рабочие области в качестве зависимостей в ваш functions
проект, поэтому добавьте их в свой package.json
:
{
"name": "functions",
"dependencies": {
"core": "*",
"common": "*",
}
}
После того, как вы все это добавили, удалите каталог packages/functions/node_modules
и запустите yarn install
. После этого вы должны увидеть все свои зависимости, включенные в packages/functions/node_modules
(не символические ссылки).
person
twiz
schedule
04.01.2020