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

Using environment variables in npm scripts across platforms

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

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

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

但是目前运行ning在Windows因为环境变量的扩展。 Linux 会使用 md $npm_package_version\helloworld.

npm是否有一种机制来转换环境变量扩展以便跨平台工作?

npm 似乎没有跨平台的方式来扩展环境变量,但你确实有节点供你使用,所以我建议你将所有脚本实现为节点脚本,然后你就可以访问 process.env 和跨平台文件系统函数,例如 mkdirSync.

package.json

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

utils/mkdir.js

'use strict';

var fs = require('fs');

fs.mkdirSync(process.env.npm_package_version + '/helloworld');

要使其成为 cross-platform,请使用 cross-var:

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