OS 独立访问 package.json 中的变量
OS independent access to variables in package.json
要访问 npm 脚本中的变量,您可以在 package.json
:
中执行类似的操作
"scripts": {
"preinstall": "echo ${npm_package_name}"
}
问题是它只能在 Unix 中工作,而不是 Windows,你必须在其中使用 %npm_package_name%
。
有没有办法做到这一点 OS 独立?如果 npm 可以在调用命令之前进行这样的变量扩展,那就太好了。
没有已知的 OS 独立的方法来做到这一点。
一个好的解决方法是在节点脚本中执行命令:
首先,更改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);
要使其成为 cross-platform,请使用 cross-var
:
"scripts": {
"preinstall": "cross-var echo ${npm_package_name}"
}
要访问 npm 脚本中的变量,您可以在 package.json
:
"scripts": {
"preinstall": "echo ${npm_package_name}"
}
问题是它只能在 Unix 中工作,而不是 Windows,你必须在其中使用 %npm_package_name%
。
有没有办法做到这一点 OS 独立?如果 npm 可以在调用命令之前进行这样的变量扩展,那就太好了。
没有已知的 OS 独立的方法来做到这一点。
一个好的解决方法是在节点脚本中执行命令:
首先,更改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);
要使其成为 cross-platform,请使用 cross-var
:
"scripts": {
"preinstall": "cross-var echo ${npm_package_name}"
}