先日の続きで、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:assetsがsharpを使っているpnpmだと手動でインストールする必要があるらしい
Ignored build scriptsという警告が何度か出るので、pnpm approve-buildsで許可する- pnpmはセキュリティ上の理由でビルドスクリプトの実行を許可制にしているそう
pnpm-workspace.yamlのonlyBuiltDependenciesに'@tailwindcss/oxide'、esbuild、sharpが追加される
--filterはpnpmとコマンド名の間に置かないと正しく機能しない- コマンド名以降はそれで実行されるスクリプトに引数として渡される
- すると、ワークスペースが指定されないことになるので、トップレベルの存在しないスクリプトを呼び出そうとしてエラーになっていた
--filterはパッケージ名とパスのどちらも指定できる./で始まるとパスとして、そうでなければパッケージ名として解釈される