У меня возникли проблемы с использованием команды run
, предоставленной yarn
, диспетчер пакетов Facebook для JavaScript.Неисправность «running run» на объекте scripts в package.json
В настоящее время в моем файле package.json
у меня есть следующее для моего объекта scripts
.
"scripts": {
"lint": "./node_modules/.bin/eslint --ignore-pattern dist ."
}
Когда я запускаю следующую команду, она работает, как ожидалось, npm run lint
. Однако, когда я запускаю скрипт от yarn
с yarn run lint
, я получаю следующее сообщение об ошибке.
Petesta :: λ -> ~/Git/yarn yarn run lint
yarn run v0.15.1
$ "./node_modules/.bin/eslint --ignore-pattern dist ."
sh: ./node_modules/.bin/eslint --ignore-pattern dist .: No such file or directory
error Command failed with exit code 127.
info Visit http://yarnpkg.com/en/docs/cli/run for documentation about this command.
./node_modules/.bin
каталог на моем $PATH
, и я заметил, что если у вас есть исполняемый файл, как date
или pwd
то yarn run some_script_on_date
будет работать, как ожидалось.
Один из способов заставить это работать - создать отдельный файл оболочки, содержащий команду, которую вы пытаетесь выполнить. Назовем это ./scripts/lint.sh
.
#!/bin/bash
./node_modules/.bin/eslint --ignore-pattern dist .
А затем запустить эту команду на файл chmod +x ./scripts/lint.sh
Теперь в вашем scripts
объекте добавьте следующую строку.
"new_lint": "./scripts/lint.sh"
А теперь yarn run new_lint
будет работать, как ожидалось.
Мне что-то не хватает или это так, как нужно создавать сценарии вызова в yarn
? Я хотел бы запустить команду, как с npm
.
Я попробовал его с 'eslint' и он не работает. Команда не найдена. Это будет работать с 'npm run', но не с' нитью запуска '. – Petesta
Буквально на днях, lol, пакет был назван 'yarnpkg' и совсем недавно устарел для' пряжи'. До этого устаревания команда запуска yarnpkg работала должным образом. Теперь с новым пакетом он не работает. – Petesta
Ах, я неправильно понял. Просто нужно дождаться выхода. – Petesta