独立于操作系统访问package.json中的变量



要访问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);

最新更新