我正在构建一个包。并使用"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');