NPM 2.0.0 & передача аргументів на run-script

    22 липня сталося невелике, але знаментаельное подія: був прийнятий пулл-реквест , що додавав підтримку передачі довільних аргументів на ваші npm script'и. Вже з'явився альфа-реліз npm весріі 2.0.0, що включає цю можливість.
 
Для початку, чому це добре?
Історично склалося, що деякий вид node-пакетів (білд-інструменти, тест-раннери) використовували два види набору пакетів: один встановлений глобально, який зазвичай мав постфікси-cli (karma-cli, grunt-cli), що запускав локально встановлений пакет в node_modules. Це дозволяло використовувати різні версії тест-РАННЕР, без необхідності ламати всі тести у всіх інших проектах при необхідності оновити пакет в якому-небудь з них. Це, свого часу, стало відмінним рішенням для grunt (версія 0.4.0 застосувала цей підхід, що допомогло уникнути багатьох проблем із зворотного несумісністю пакетів).
Також, є факт того, що при запуску npm script'а, в дорогу виконуваних файлів додаються node_modules / .bin, в якому, в принципі, і лежать ті самі раннери / білдери, що запускаються глобальним cli пакетом. Це дозволяє в своєму package.json додати:
 
scripts: {
 grunt: "grunt build"
}

і запускати локально встановлений grunt простим
npm run grunt
. Проблемою донині був випадок, коли вам потрібно було передати аргументи на ваш npm script — це було неможливо.
Тепер же стане можливим, додавши в своєму package.json
 
scripts: {
 grunt: "grunt"
}

використовувати команди виду
npm run grunt - build
або
npm run grunt - build --verbose
. У одному з коментарів до оригінального пулл-реквесту пропонується просто створити аліас виду
alias gr='npm run grunt --'
і запускати білд простим
gr build
.
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.