Ответ 1
Чтобы сделать его кросс-платформенным, используйте cross-var
:
"scripts": {
"preinstall": "cross-var echo ${npm_package_name}"
}
Чтобы получить доступ к переменной среды в сценариях npm, вы сделаете что-то вроде этого в своем package.json
:
"scripts": {
"preinstall": "echo ${npm_package_name}"
}
Проблема заключается в том, что работает только в Unix, а не в Windows, где вам нужно использовать %npm_package_name%
.
Есть ли способ сделать эту ОС независимой? Будет полезно, если npm может сделать такое расширение переменной, прежде чем вызывать команду.
Чтобы сделать его кросс-платформенным, используйте cross-var
:
"scripts": {
"preinstall": "cross-var echo ${npm_package_name}"
}
Нет никакого известного способа сделать это независимым от ОС.
Хорошим обходным решением является выполнение команды в node script:
Сначала измените команду preinstall
, чтобы выполнить node script:
"scripts": {
"preinstall": "node nameEcho.js"
}
Затем вы определяете команду в файле nameEcho.js:
// require the package.json file
var pjson = require('./package.json');
// echo the package name
console.log(pjson.name);