У меня есть пакет узлов, цель которого - установить скрипт CLI. В целях тестирования я хотел бы иметь возможность запускать скрипт из node_modules/.bin
. Однако npm install
игнорирует «bin» в пакете верхнего уровня package.json, и, глядя на код, это выглядит намеренно:
function linkBins (pkg, folder, parent, gtop, cb) {
if (!pkg.bin || !gtop && path.basename(parent) !== "node_modules") {
return cb()
}
Условие !gtop && path.basename(parent) !== "node_modules"
будет истинно точно, когда выполняется npm install
без -g
и выполняется обработка пакета верхнего уровня.
Почему он это делает? Как можно тестировать свои скрипты CLI, не устанавливая их глобально?