пряжа ягодный бег как запускать установленные пакеты

Я вижу, что с 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

И это сработало.

Другие вопросы по тегам