cli: stylelint --help: команда не найдена (mac) - PullRequest
0 голосов
/ 03 октября 2019

Я уже давно использую stylelint-gulp без проблем. У меня есть stylelint, загруженный как npm devDependancy (т.е. не глобальный, так как я не хочу, чтобы он был глобальным) в моем проекте, и следуя инструкциям , у меня также должен быть доступен CLI.

однако stylelint --help возвращает "команда не найдена"

У меня установлены другие модули, такие как eslint, и cli работает просто отлично.

узел: v12.11.1 npm: 6.11.3

У меня также установлен nvm, поэтому я попытался вернуться к npm --lts, но он все еще не работает. Кстати, это на OSX 10.13.6, если это имеет значение.

любой совет?

Ответы [ 2 ]

1 голос
/ 04 октября 2019

Поскольку у вас глобально не установлена ​​ stylelint , у вас не будет команды stylelint , доступной глобально.

Аналогично тому, как отмечено в комментарии выше,лучший способ использовать команду stylelint , когда она не установлена ​​глобально, - получить к ней доступ через репозиторий, в котором она установлена:

./node_modules/.bin/stylelint "**/*.css"

0 голосов
/ 05 октября 2019

Краткий ответ:

С любым локально установленным пакетом npm (т. Е. Как devDependancy проекта) вы не должны ожидать, что сможете запустить CLI пакета следующим образом <package_name> --help. Вам нужно будет указать полный путь к модулю в каталоге .node_moduels/, как @netweb показал в своем ответе:

./node_modules/.bin/stylelint --help

Страница документации IMHO Stylelint является немного запутывает в этом отношении, поэтому я и задал вопрос.

Более длинный ответ:

Для возможности запуска stylelint --help или любого другого npm CLI, вам придется † установить пакет глобально, то есть: <package_name> -global. В этом процессе создается символическая ссылка, поэтому ключевое слово <package_name> можно вызывать в любом каталоге системы.

Однако есть категория инструментов (например, линтеры), где обычно считается плохой практикой для их глобальной установки. Это связано с тем, что различные проекты могут иметь противоречивые требования, и в этом случае быстро установить все эти инструменты в глобальном масштабе становится проблематичным. Лучше всего, чтобы эти инструменты были установлены на уровне проекта как devDependancy, например, так: npm install <package_name> --save-dev.

Если вы настраиваете npm сценарии или системы непрерывной интеграции, то вы бы вызвали эти инструменты 'CLI, включая путь к локальной установке: ./node_modules/.bin/stylelint "**/*.css"

Однако в терминале запись пути заполнения каждый раз, когда вы хотите вызвать инструмент, болезненна, поэтому вместо этого, вы можете использовать [npx][4] для вызова локально установленного модуля:

npx stylelint --help

npm-link , а также символические ссылки на ваш локальный пакет, как если бы он былглобально установлен. Однако, за исключением некоторых определенных сценариев , очень маловероятно , если вы хотите сделать глобально доступным локальный devDependancy.

...