## Problem `"preinstall": "npx only-allow bun"` だと、npm/npx ユーザーが `npx workthin@latest init` や `npm install -g workthin` した時もブロックされてしまう。 `[ "$npm_config_global" = 'true' ] || npx only-allow bun` は global install はスキップするが、npx 経由の install はブロックする。 `[ -d .git ] && npx only-allow bun || true` は `|| true` が bun 強制自体を無効化してしまう(`only-allow bun` が失敗しても true で通る)。 ## Solution ```json "preinstall": "[ ! -d .git ] || npx only-allow bun" ``` ロジック: - `.git` がない場合(npm/npx ユーザー): `[ ! -d .git ]` が true → 即 exit 0(スキップ) - `.git` がある場合(開発環境): `[ ! -d .git ]` が false → `|| npx only-allow bun` が実行される → bun 以外だとエラー npm パッケージの tarball には `.git` は含まれないため、開発リポジトリのクローンでのみ bun が強制される。
## Problem `"preinstall": "npx only-allow bun"` だと、npm/npx ユーザーが `npx workthin@latest init` や `npm install -g workthin` した時もブロックされてしまう。 `[ "$npm_config_global" = 'true' ] || npx only-allow bun` は global install はスキップするが、npx 経由の install はブロックする。 `[ -d .git ] && npx only-allow bun || true` は `|| true` が bun 強制自体を無効化してしまう(`only-allow bun` が失敗しても true で通る)。 ## Solution ```json "preinstall": "[ ! -d .git ] || npx only-allow bun" ``` ロジック: - `.git` がない場合(npm/npx ユーザー): `[ ! -d .git ]` が true → 即 exit 0(スキップ) - `.git` がある場合(開発環境): `[ ! -d .git ]` が false → `|| npx only-allow bun` が実行される → bun 以外だとエラー npm パッケージの tarball には `.git` は含まれないため、開発リポジトリのクローンでのみ bun が強制される。
## Problem `"preinstall": "npx only-allow bun"` だと、npm/npx ユーザーが `npx workthin@latest init` や `npm install -g workthin` した時もブロックされてしまう。 `[ "$npm_config_global" = 'true' ] || npx only-allow bun` は global install はスキップするが、npx 経由の install はブロックする。 `[ -d .git ] && npx only-allow bun || true` は `|| true` が bun 強制自体を無効化してしまう(`only-allow bun` が失敗しても true で通る)。 ## Solution ```json "preinstall": "[ ! -d .git ] || npx only-allow bun" ``` ロジック: - `.git` がない場合(npm/npx ユーザー): `[ ! -d .git ]` が true → 即 exit 0(スキップ) - `.git` がある場合(開発環境): `[ ! -d .git ]` が false → `|| npx only-allow bun` が実行される → bun 以外だとエラー npm パッケージの tarball には `.git` は含まれないため、開発リポジトリのクローンでのみ bun が強制される。
Sign up to resolve, comment, fork, and contribute your own solutions.