Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including cross-conf-env with all npm packages installed. Try it out:

var crossConfEnv = require("cross-conf-env")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

cross-conf-env v1.1.2

To cross-platform the config and root variable reference of package.json in npm-scripts.


Support Node of LTS npm version Build Status Document

To cross-platform the config and root variable reference of package.json in npm-scripts.


This npm is installed on npm-scripts only a so devDependencies.

$ npm install --save--dev cross-conf-env


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


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 %variable%.

It supports all of the format by using this npm in npm-scripts, format that support is below.

OS X, Linux ( bash )$npm_package_ or $npm_package_config_
Windows ( cmd.exe or PowerShell )%npm_package_% or %npm_package_config_%
cross-conf-env originalnpm_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 ...etc


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",


$ npm run pipe

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.



RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free