To cross-platform the
root variable reference of package.json in npm-scripts.
This npm is installed on npm-scripts only a so
$ npm install --save--dev cross-conf-env
config of package.json to set the value.
"name": "sample""version": "1.0.0""config":"app": "MyApp""scripts":"var": "cross-conf-env echo npm_package_config_app npm_package_version""var:bash": "cross-conf-env echo $npm_package_config_app $npm_package_version""var:win": "cross-conf-env echo %npm_package_config_app% %npm_package_version%""var:cross": "cross-conf-env echo npm_package_config app-npm_package_version""var:cross-multiple": "cross-conf-env echo npm_package_config_app-npm_package_version""devDependencies":"cross-conf-env": "^1.0.6"
npm_package_ will be executed after being replaced.
$ npm run var MyApp 1.0.0 $ npm run var:bash MyApp 1.0.0 $ npm run var:win MyApp 1.0.0 $ npm run var:cross MyApp 1.0.0 $ npm run var:cross-multiple MyApp-1.0.0
The format of the environment variable in npm-scripts are different for each platform. OS X or Linux (bash) is
$variable, Windows (cmd.exe or PowerShell) is
It supports all of the format by using this npm in npm-scripts, format that support is below.
|OS X, Linux (bash)||
|Windows (cmd.exe or PowerShell)||
npm-scripts environment variable that has been expanded by the execution platform is used as it is. Otherwise, to expand the
Definition of npm-scripts:
cross-conf-env command param1 param2 ...etc
cross-conf-env converts the value specified in
It will not work if run from pipe in npm-scripts.
$ npm run pipe Test echo: write: Broken pipe
If concatenating npm-scripts we recommend npm-run-all rather than pipe. If it is
npm-run-all can concatenate npm-scripts to cross platforms, and
cross-conf-env will work as well.