21

I have a lerna setup with n packages located under packages/. Let us take an example where one of the packages uses express where the others do not.

How can I remove express from this package in a lerna-aware manner so the root package.json is updated?

I can add packages with lerna add --scope but it seems there is no corresponding remove functionality.

Ray Booysen
  • 28,894
  • 13
  • 84
  • 111

3 Answers3

17
  1. Remove package from package.json
  2. Remove node_modules folder: rm -rf packages/{package_name}/node_modules
  3. Run lerna bootstrap

Without step 2 the package still exists in the package-lock.json NPM lock file.

Micah Henning
  • 2,125
  • 1
  • 18
  • 26
13

Just remove the packages from your package.json

then run

$lerna bootstrap

Ray Booysen
  • 28,894
  • 13
  • 84
  • 111
manuelBetancurt
  • 15,428
  • 33
  • 118
  • 216
1

If you want to be sure that lerna bootstrap only updates the specific package-lock.json in @org-name/package-name/ and not other package-lock.json files, do:

  1. Manually remove dependencies from @org-name/package-name/package.json
  2. Remove the whole node_modules directory for this one package
rm -rf packages/package-name/node_modules
  1. Now bootstrap only this one package.
lerna bootstrap --scope @org-name/package-name --no-ci --force-local
a1300
  • 2,633
  • 2
  • 14
  • 18