Skip to content
Go back

pnpm workspaceでAstroテーマを管理する

先日の続きで、Astroのテーマをgit submodule addして、npm workspaceとして構成してみたときのメモ書きです。

  • pnpmでのworkspaceの書き方はnpmのものと異なるので注意
    • pnpm_workspace.yamlに(パターンで)列挙する
    • dependenciesに書くとき、semverの前にworkpace:を付ける
    • pnpm runするとき、-w--filterでワークスペースを指定する
  • Cannot find module '../build/Release/sharp-win32-x64.node'エラーでビルドが止まる
    • astro:assetssharpを使っている
    • pnpmだと手動でインストールする必要があるらしい
  • Ignored build scriptsという警告が何度か出るので、pnpm approve-buildsで許可する
    • pnpmはセキュリティ上の理由でビルドスクリプトの実行を許可制にしているそう
    • pnpm-workspace.yamlonlyBuiltDependencies'@tailwindcss/oxide'esbuildsharpが追加される
  • --filterはpnpmとコマンド名の間に置かないと正しく機能しない
    • コマンド名以降はそれで実行されるスクリプトに引数として渡される
    • すると、ワークスペースが指定されないことになるので、トップレベルの存在しないスクリプトを呼び出そうとしてエラーになっていた
  • --filterはパッケージ名とパスのどちらも指定できる
    • ./で始まるとパスとして、そうでなければパッケージ名として解釈される

参考資料#