👏
npm workspaces で追加した workspace を削除する方法
これは何
npm workspaces 機能で追加した workspace を削除する方法について調べたメモ
公式に削除する方法は、現状無い
stack overflow に質問があった
現状として npm として公式に workspace を削除する機能は提供されておらず、 GitHub Issue や Pull Request が存在するが、まだ取り込まれていない状況
どうすれば良いのか
pnpm を使う
stack overflow のコメントでは pnpm を使うという解決策が提示されていた
pnpm ではルートディレクトリに yaml ファイルを配置して、 workspace を管理するという機能
もちろん npm との互換性は無いため、すでに npm workspaces を使用している場合は別の方法が必要
すでに npm workspaces を使用している場合
ひとまず手動で対応する方法をまとめておく
packages/b
を追加したものの削除したいという場合、まずは package.json を編集する
"workspaces": [
"packages/a",
"packages/b"
]
workspaces に含まれるパッケージ情報を削除する
"workspaces": [
"packages/a"
]
package-lock.json と node_modules を削除
rm package-lock.json
rm -rf node_modules
再度パッケージをインストールする
npm install
これで良さそう
試した環境
% sw_vers
ProductName: macOS
ProductVersion: 14.6.1
BuildVersion: 23G93
% node --version
v20.16.0
% npm --version
10.8.1
Discussion