cross-var-src-patch
v1.1.1
Published
[![NPM](https://nodei.co/npm/cross-var.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/cross-var/) [![NPM](https://nodei.co/npm-dl/cross-var.png?months=9&height=3)](https://nodei.co/npm/cross-var/)
Downloads
294
Readme
cross-var
Overview
🚨 Note: cross-var-src-patch
exists only to temporarily resolve an open issue in cross-var
. cross-var
fails to execute properly when it is run in a project located somewhere inside a src
directory. The issue appears to be an overzealous matcher in the babel config. Once this issue is resolved (potential fix), this package will no longer be necessary and will be deprecated. While this package is called cross-var-src-patch
, the binary continues to be cross-var
. As such, the rest of this patch project's documentation will remain intact. Please file only documentation issues. Carry on!
When using npm scripts
it creates a lot of environment variables that are available for you to leverage when executing scripts.
If you'd like to take a look at all of the variables then you can run npm run env
in your terminal.
> npm run env
npm_package_name=cross-var
npm_package_author_name=Elijah Manor
npm_package_version=1.0.0
... lots more ...
Now you can use those environment variables in your npm scripts
by referencing them like the following
{
"name": "World",
"scripts": {
"//": "The following only works on Mac OS X/Linux (bash)",
"bash-script": "echo Hello $npm_package_name"
"//": "The following only works on a Windows machine",
"win-script": "echo Hello %npm_package_name%"
}
}
> npm run bash-script
Hello World
However, this won't work on Windows... because it expects the variables to be surrounded by percent signs, so we can change our script just slightly.
cross-var
to the Rescue!
The goal of cross-var
is to let you use one script syntax to work either on a Mac OS X/Linux (bash) or Windows. Reference the Usage documention below on how to use cross-var
in your scripts.
Usage
Simple Commands
{
"version": "1.0.0",
"config": {
"port": "1337"
},
"scripts": {
"prebuild": "cross-var rimraf public/$npm_package_version",
"build:html": "cross-var jade --obj data.json src/index.jade --out public/$npm_package_version/",
"server:create": "cross-var http-server public/$npm_package_version -p $npm_package_config_port",
"server:launch": "cross-var opn http://localhost:$npm_package_config_port"
}
}
Complex Commands
{
"version": "1.0.0",
"scripts": {
"build:css": "cross-var \"node-sass src/index.scss | postcss -c .postcssrc.json | cssmin > public/$npm_package_version/index.min.css\"",
"build:js": "cross-var \"mustache data.json src/index.mustache.js | uglifyjs > public/$npm_package_version/index.min.js\"",
}
}
But What About!?!
Click on one of the following questions to reveal a detailed answer
However, if you want to support older Windows versions, then you might consider using cross-env
or another approach to leverage environment variables in your scripts.