1.2.1 • Published 5 years ago

@mtrimolet/cross-var v1.2.1

Weekly downloads
22
License
MIT
Repository
-
Last release
5 years ago

@mtrimolet/cross-var

npm version npm license npm download npm download

david dependency david devDependency david optionalDependency david peerDependency Known Vulnerabilities

Overview

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=@mtrimolet/cross-var
npm_package_author_name=Maxime Trimolet
npm_package_version=1.2.1
... 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 ${npm_package_version}",
    "//": "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.

1.2.1

5 years ago

1.2.0

5 years ago

1.0.0

5 years ago