====== NPM Scripts ======
[[https://www.npmjs.com/|NPM]] is a Javascript and Node.js package manager and task runner. Starting with VuFind® 9.0, it has been configured to run several tasks for front end manipulation and packaging. Earlier VuFind® releases relied on [[Grunt]].
To setup NPM to run, first install node and run "npm install" to install all the dependencies in package.json.
===== Build Tasks =====
These tasks build artifacts in the themes through a one-time action.
==== npm run build ====
Generates any artifacts that require pre-processing inside all available themes. As of this writing, this is an alias for ''npm run build:css'', but this could change in the future.
==== npm run build:css ====
Generates any CSS files that require pre-processing inside all available themes. As of this writing, this is an alias for ''npm run build:less'', but as VuFind® evolves, if we migrate to different technologies, we plan to maintain this alias, so your development routines will not be disrupted.
==== npm run build:less ====
:!: Using "npm run build:css" instead is recommended; see above.
Compiles all less files into a compressed css file. This script will detect themes inside of your themes directory and build the proper paths for you.
To use:
npm run build:less
==== npm run build:scss ====
Compiles all sass files into a compressed css file. This script will detect themes inside of your themes directory and build the proper paths for you.
npm run build:scss
==== npm run lessToSass ====
Converts all less files to sass. Mostly for the VuFind® dev team.
===== Development Build Tasks =====
These tasks are equivalent to the similarly-named build tasks above, but they produce development-mode artifacts that allow more detailed debugging.
* build-dev
* build-dev:css
* build-dev:less
===== Watch Tasks =====
These tasks run a monitoring process to automatically run the associated build / development build task whenever files are edited. This can be useful during active development.
* watch
* watch:css
* watch:less
* watch:lessToSass
* watch-dev
* watch-dev:css
* watch-dev:less