Package Exports
- cross-conf-env
- cross-conf-env/dist/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (cross-conf-env) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
cross-conf-env
To cross-platform the config and root variable reference of package.json in npm-scripts.
Installation
This npm is installed on npm-scripts only a so devDependencies.
$ npm install --save--dev cross-conf-envUsage
To the 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"
}
}Value of npm_package_config_ or 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.0The 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 %variable%.
It supports all of the format by using this npm in npm-scripts, format that support is below.
| Platform | Format |
|---|---|
| OS X, Linux (bash) | $npm_package_ or $npm_package_config_ |
| Windows (cmd.exe or PowerShell) | %npm_package_% or %npm_package_config_% |
cross-conf-env original |
npm_package_ or npm_package_config_, without special charactors ($ or %) |
npm-scripts environment variable that has been expanded by the execution platform is used as it is. Otherwise, to expand the cross-conf-env.
Definition of npm-scripts:
cross-conf-env command param1 param2 ...etcLimitations
cross-conf-env converts the value specified in process.env.
It will not work if run from pipe in npm-scripts.
{
"config": {
"app": "MyApp",
"test": "Test"
},
"scripts": {
"pipe": "cross-conf-env echo npm_package_config_var | cross-conf-env echo keep npm_package_config_test"
}
}results:
$ npm run pipe
Test
echo: write: Broken pipeIf 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.