要访问npm脚本中的变量,您需要在package.json
:中执行以下操作
"scripts": {
"preinstall": "echo ${npm_package_name}"
}
问题是它只能在Unix中工作,而不能在Windows中工作,在Windows中必须使用%npm_package_name%
。
有没有一种方法可以独立于操作系统?如果npm能够在调用命令之前进行这样的变量扩展,那就太好了。
要使其跨平台,请使用cross-var
:
"scripts": {
"preinstall": "cross-var echo ${npm_package_name}"
}
没有已知的独立于操作系统的方法。
一个好的解决方法是在节点脚本中执行命令:
首先,更改preinstall
命令以执行节点脚本:
"scripts": {
"preinstall": "node nameEcho.js"
}
然后在nameEcho.js文件中定义命令:
// require the package.json file
var pjson = require('./package.json');
// echo the package's name
console.log(pjson.name);