extend-package-scripts-example

An example of how to extend your package.json scripts by passing extra files or flags as arguments.

Usage no npm install needed!

<script type="module">
  import extendPackageScriptsExample from 'https://cdn.skypack.dev/extend-package-scripts-example';
</script>

README

extend-package-scripts-example

An example of how to extend your package.json scripts by passing extra files or flags as arguments.

Install

git clone git@github.com:yamafaktory/extend-package-scripts-example.git

npm i

Why

  1. npm is an amazing package manager and an efficient build tool / task runner too.

  2. You do not need to install / wrap your mind around / configure another bloated tool to get the stuff done.

  3. You like Unix and so does npm.

How

Please first take a look at the package.json file.

"config": {
  "file": "example.es6"
},
"scripts": {
  "compile": "babel --presets es2015 $npm_package_config_file",
  "compile:file": "npm run-script compile -- -o file.js",
  "compile:watch": "npm run-script compile -- -w -o file.js"
}

You will notice that:

  • You can create your own variables in the config section.

  • You can reuse these variables in the script section (e.g. $npm_package_config_whatever).

  • You can create extended tasks on purpose by appending -- plus new arguments to one given initial task.

Play with the example

The provided example is based on the Babel compiler.

The main task display a simple es2015-to-es5 JavaScript transpiled file to the stdout:

npm run compile

The same task is extended in order to write it to a file:

npm run compile:file

And then extended again to create a watcher:

npm run compile:watch

Is that new?

Absolutely not.

Please read the documentation.

Bonus

What if I want to overwrite the file variable of the config section?

npm config set extend-package-scripts-example:file another-file.es6 && npm run compile:file

And you can do a lot more!

Licence

MIT © Davy Duperron