пряжа ягодный бег как запускать установленные пакеты
Я вижу, что с yarn berry я получаю функцию plug'n'play вместо node_modules/
Я не смог найти ничего, что могло бы предположить, что он поддерживает запуск из установленных пакетов.
Например, с npm рабочий процесс может заключаться в запуске установленной версии webpack:
$ npm install --save-dev webpack
$ node node_modules/webpack/bin/webpack ...
Глобально установленный веб-пакет может быть другой версии. Что еще хуже, во время развертывания Docker я получаю то, что установлено локально, единственный узел и npm доступны глобально. Я думал, что смогу сделатьpreinstall
сценарий, который делает npm install -g yarn; yarn set version berry
но тогда я не знаю, как это сделать webpack
, jest
, babel
и т. д., и мысль о том, что мне придется установить их все глобально во время одного preinstall
hackaround выглядит как несколько шагов назад.
Есть ли способ запустить из локально установленных пакетов, которые мне не хватает?
Я видел этот, возможно, связанный вопрос - Yarn Berry - Прямой запуск сценария узла
Но ответ кажется немного не по существу - я не использую js, я пытаюсь ввести сценарий package.json, то есть что-то, что может запускаться из оболочки.
2 ответа
Почему бы просто не использовать yarn run <bin>
(или просто yarn <bin>
)? Если вы находитесь в репозитории, настроенном на использование yarn berry, это запустит любой bin-файл пакета.
yarn node <file>
будет работать любой .js
файл с установленным Plug n' Play. Нет необходимости устанавливать эти зависимости глобально, за исключением, возможно, yarn classic.
Я пытался сделать
yarn some-bin
и продолжал получать:
Couldn't find a script named "some-bin".
В конце концов я понял, что это потому, что пакет, который предоставляет
some-bin
устанавливается внутри рабочего пространства, а не в корень моего проекта. Поэтому вместо этого мне пришлось запустить:
yarn workspace my-workspace some-bin
И это сработало.