跨平台在npm脚本中使用环境变量



我正在构建一个包。并使用"npm run"来运行一些脚本,确切地说,https://docs.npmjs.com/misc/scripts.

我的脚本需要扩展一些环境变量,我想使它跨平台兼容。例如,我的脚本会写

"scripts": {
  "build": "md %npm_package_version%helloworld"
}

但它目前运行在Windows上,因为环境变量的扩展。Linux将使用md $npm_package_versionhelloworld .

npm是否具有转换环境变量扩展的机制,以便跨平台工作?

使用cross-var:

"scripts": {
  "build": "cross-var md %npm_package_version%helloworld"
}

npm似乎没有一种跨平台的方式来扩展环境变量,但是您确实可以使用节点,因此我建议将所有脚本实现为节点脚本,然后您可以访问process.env和跨平台的文件系统功能,如mkdirSync

package.json

"scripts": {
  "build": "node utils/mdkir.js"
}

跑龙套/mkdir.js

'use strict';
var fs = require('fs');
fs.mkdirSync(process.env.npm_package_version + '/helloworld');

最新更新