## 経緯 久々に[[pnpm]]を試してみたらいい感じだったので、[[Bun]]を使えないプロジェクトで実際に試してみたくなった。 ## 移行 ### パッケージマネージャーをpnpmに変更 まずは[[corepack]]を使って[[パッケージマネージャー]]を[[pnpm]]にする。 ```console corepack enable ``` ### ロックファイルの変換 [[ロックファイルを変換 (pnpm)|ロックファイルを変換]]するため、`pnpm import`コマンドを使う。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://pnpm.io/img/favicon.png" /> <span class="link-card-v2-site-name">pnpm.io</span> </div> <div class="link-card-v2-title"> pnpm import | pnpm </div> <div class="link-card-v2-content"> pnpm import generates a pnpm-lock.yaml from another package manager's lockfile. Supported source files: </div> <img class="link-card-v2-image" src="https://pnpm.io/img/ogimage.png" /> <a href="https://pnpm.io/cli/import"></a> </div> ```console $ pnpm import Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: /home/tadashi-aikawa/.local/share/pnpm/store/v3 Virtual store is at: node_modules/.pnpm  WARN  12 deprecated subdependencies found: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], re [email protected], [email protected], [email protected], [email protected], [email protected], [email protected] Progress: resolved 473, reused 0, downloaded 1, added 0, done ``` `pnpm-lock.yaml`が作成されていることを確認したら、`package-lock.json`は消す。 ```console rm package-lock.json ``` ### パッケージの再インストール ```console rm -rf node_modules pnpm i ``` ### コマンドをpnpmに書き換える `npm`を`pnpm`に書き換え。 ## オマケ [[📜2024-04-14 Node.jsのObsidianプラグインプロジェクトをBunに移行してみた]] を参考に以下3つの対応も行う。 - [x] Taskfileのdevコマンド廃止 - [x] リリース手順変更 - [x] Huskyのdeprecatedを修正 ついでにそれ以外も。 - [ ] [[Prettierでimportを最適化]] ### バージョンアップ ``` dependencies: - ts-deepmerge 7.0.0 + ts-deepmerge 7.0.1 devDependencies: - @tsconfig/svelte 5.0.2 + @tsconfig/svelte 5.0.4 - esbuild-svelte 0.8.0 + esbuild-svelte 0.8.1 - husky 9.0.11 + husky 9.1.3 - prettier 3.2.5 + prettier 3.3.3 - prettier-plugin-svelte 3.2.1 + prettier-plugin-svelte 3.2.6 - svelte 4.2.11 + svelte 4.2.18 - tslib 2.6.2 + tslib 2.6.3 - typescript 5.3.3 + typescript 5.5.4 ```