Youssef Ameachaq's Blog

Youssef Ameachaq

NPM Workspaces


In npm, a workspace is a feature that allows you to manage multiple packages together in a single project. It provides a way to organize and develop multiple packages in a monorepo-style project structure. Workspaces enable you to share code and dependencies across multiple packages in a project, making it easier to manage and develop complex applications.

When you use workspaces in npm, you define a root directory for your project, and then you can create one or more subdirectories, each of which represents a package. Each package can have its own package.json file and its own node_modules directory, but they can also share dependencies that are defined in the root package.json file.

To enable workspaces in npm, you need to add a workspaces key to your project’s root package.json file, specifying an array of globs that define the packages to be included. Once you have enabled workspaces, you can use commands like npm install, npm run, and npm test to work with the packages in your project.

Workspaces are particularly useful for managing large projects with multiple packages, where keeping track of dependencies and versions can become complex. By using workspaces, you can simplify your development process and improve your project’s organization and maintainability.

here’s an example of how you can use workspaces in an npm project:

1- Edit your package.json file to add the workspaces key:

{
  "name": "my-project",
  "version": "1.0.0",
  "workspaces": [
    "packages/*"
  ]
}

In this example, we are using the workspaces key to specify a glob pattern that matches all subdirectories in a folder called packages.

2- Navigate to the my-package directory, and create a new package.json file for your package: and init the npm project and keep adding your dependencies.