#npm #npm-run
#нпм #npm-run
Вопрос:
Запустив npm 3.10.3 и node 6.7.0 в Ubuntu, я использовал пакет «npm-run», позволяющий локально использовать исполняемые скрипты узла кроссплатформенным способом. Так, например, для некоторых простых тестов ava я запустил следующее в package.json.
"scripts": {
"test": "npm-run ava --serial "
}
Однако я заметил, что следующее тоже работало нормально, после проверки того, что ava не была установлена глобально:
"scripts": {
"test": "ava --serial "
}
Я еще не тестировал на Windows, так что решение еще не принято, но кто-нибудь знает, поддерживается ли это поведение теперь непосредственно в npm, как оно появляется? Если да, то рекомендуется ли по-прежнему использовать npm-run для обеспечения обратной совместимости?
Спасибо,
Джон
Комментарии:
1.
npm-run
Пакет AFAIU решает несколько иную проблему , чем та, которую вы описываете — речь идет не о том, что установлено / не установлено глобально, а о том, есть ли исполняемый файл, созданный в./node_modules/.bin
bynpm install
. Сказав это, я никогда не знал о существовании проблемы, описанной вnpm-run
readme (может быть, она уникальна для npm3?), И, следовательно, никогда не использовалсяnpm-run
, и у меня никогда не было никаких проблем из-за этого.2. Да, и когда все остальное терпит неудачу, прочитайте руководство — просто нашел это в документах для сценариев npm (поэтому не уверен, почему люди рекомендовали npm-run): если вы зависите от модулей, которые определяют исполняемые скрипты, например, наборы тестов, тогда эти исполняемые файлы будут добавлены в ПУТЬ для выполнения скриптов. Итак, если ваш package.json имеет это: { «name»: «foo», «dependencies»: { «bar»: «0.1.x» } , «scripts»: { «start»: «bar ./ test» } }, тогда вы можете запустить npm start для выполнениясценарий bar, который экспортируется в каталог node_modules/.bin при установке npm.