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

时间:2015-10-25 15:46:38

标签: npm cross-platform

我正在构建一个package.json并使用“npm run”运行一些脚本,确切地说是https://docs.npmjs.com/misc/scripts

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

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

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

npm是否附带了一种转换环境变量扩展的机制,以便跨平台工作?

2 个答案:

答案 0 :(得分:10)

要使其跨平台,请使用cross-var

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

答案 1 :(得分:9)

npm似乎没有跨平台的方式来扩展环境变量,但您确实有自己的节点,所以我建议您将所有脚本实现为节点脚本,然后您可以访问{ {1}}和跨平台文件系统函数,如process.env

<强>的package.json

mkdirSync

<强> utils的/ mkdir.js

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