Поскольку cp -rL
не работает на Mac, мне пришлось придумать нечто подобное.
Вот рабочий процесс, который работает, если все ваши пакеты принадлежат одной области (@org):
В package.json вашего репозитория lerna:
"scripts": {
"deploy": "lerna exec \"rm -rf node_modules\" && lerna bootstrap -- --production && lerna run deploy && lerna bootstrap"
}
В пакете, который содержит вашу лямбда-функцию:
"scripts":{
"deploy": "npm pack && tar zxvf packagename-version.tgz && rm -rf node_modules/@org && cp -r node_modules/* package/node_modules && cd package && npm dedupe"
}
Теперь замените «packagename-version» и «@org» соответствующими значениями вашего проекта.Также добавьте все зависимые пакеты в «bundledDependencies».
После запуска npm run deploy
в корне вашего репозитория lerna mono вы получите папку «package» в пакете, содержащем вашу лямбда-функцию.Он имеет все зависимости, необходимые для запуска вашей функции.Возьмите это оттуда.
Я надеялся, что использование npm pack
позволит мне использовать файлы .npmignore, но кажется, что это не работает.Если у кого-то есть идея, как заставить это работать, дайте мне знать.