====== Install npm packages locally vs globally ====== When managing dependencies in a Node.js project, you often have a choice between installing packages **globally** and installing them **locally** within a project. Both approaches have their use cases and advantages, and **you can run local packages using npx** without installing them globally. ===== Global installation ===== Global installation installs a package in a central location on your system, making it accessible from any directory. This is often used for command-line tools that you want to use across multiple projects. \\ **Command to install globally**: npm install -g **Command to run it**: **Use case**: Useful for CLI tools that you want to use across different projects. \\ **Access**: You can run the command from anywhere in your system. \\ **Versioning**: One version installed for all projects, which can lead to version conflicts if different projects require different versions. \\ ===== Local installation ===== **npx** is a command-line tool that comes with npm (version 5.2.0 and higher) that allows you to run locally installed packages as if they were installed globally. \\ **Command install locally**: npm install **Command to run with npx**: npx **Use case**: Ideal for project-specific dependencies or when you want to try a package without installing it. \\ **Access**: You can only run the command within the project where it's installed or explicitly specify the package with npx. \\ **Versioning**: Each project can have its own version of the package, reducing conflicts. \\ ===== Comparison ===== - **Flexibility**: **Local** installation with npx offers more flexibility, as you can have different versions for different projects. - **Ease of use**: **Global** installation is easier to use across multiple projects but might lead to version conflicts. - **Isolation**: Using npx with **local** packages ensures that your project’s dependencies are isolated from other projects, leading to more predictable behavior. ===== Example ===== Suppose you want to use terser to minify files: ==== Global Installation ==== Install: npm install -g terser and then run: terser file.js -o file.min.js ==== Local Installation ==== Install: npm install terser and then run within the project where terser is installed: npx terser file.js -o file.min.js