diff --git a/tools.func.md b/tools.func.md new file mode 100644 index 0000000..03c3dd5 --- /dev/null +++ b/tools.func.md @@ -0,0 +1,48 @@ +# This page describes all helper functions defined in `misc/tools.func` + +## `install_node_and_modules` Bash Function + +This function automates the installation of a specified version of Node.js and a list of global Node modules on a Debian-based system. It ensures the desired Node.js version is installed (replacing any existing version if necessary) and installs or updates specified Node.js global modules. + +--- + +### 🧰 Function Description + +`install_node_and_modules()`: + +- Checks if Node.js is installed. +- If Node.js is installed but not the desired version, it replaces it. +- If Node.js is not installed, it installs the specified version using the NodeSource APT repository. +- It can also install or update a list of global Node modules. + +--- + +### 🚀 How to Use/Example + +```bash +install_node_and_modules +``` +to install the latest version of Node.js with no additional Modules. +If you want to define a specified Version and install Modules use something like this: + +```bash +NODE_VERSION=20 NODE_MODULE="yarn@latest,@vue/cli-service@5.0.0" install_node_and_modules +``` + +### 🧩 User-Configurable Variables + +| Variable | Description | Default Value | +|----------------|----------------------------------------------------------------------------------------------------------------|---------------| +| `NODE_VERSION` | Specifies the major version of Node.js to install (e.g., `20`, `22`). | `22` | +| `NODE_MODULE` | Comma-separated list of global npm modules to install or update.
Examples:
• `yarn@latest`
• `@vue/cli-service@5.0.0`
• `typescript` | *(empty)* | + + +### 🔧 Notes + +Global npm packages are only processed if NODE_MODULE is set. +If the requested module version is already installed, it is skipped. +Modules are updated if the installed version does not match the requested one (unless latest is used). +On failure, the script exits with exit 1. + + +