何?何に使うの?
「-g」オプションは、「パッケージをグローバルにインストールするためのオプション」です。
グローバルにインストールすることで、コマンドを省略して実行できます。
例えばtypescriptをコンパイルするコマンド「tsc」ですが、npm installしただけでは使用することはできません。
> npm install typescript
> tsc
tsc : 用語 'tsc' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確
認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ tsc
+ ~~~
+ CategoryInfo : ObjectNotFound: (tsc:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
実行するには以下のように「npx」を使用しなければなりません。
> tsc .\sample.ts --- NG
> npx tsc .\sample.ts --- OK!
しかし「-g」を指定することで、「tsc」だけで実行することができるようになります。
グローバルインストール
> npm install typescript -g
> tsc .\sample.ts --- OK!
インストール先の違い
-g オプションを指定せずにinstallした場合、パッケージは作業ディレクトリにインストールされる。
powershell
npm install パッケージ
- 作業ディレクトリ
- node_modules
- .bin
- ★ここに追加される★
- package.json
- package-lock.json
-g は通常FALSEに設定されており、指定することで有効にすることができます。
powershell
npm install パッケージ -g
または
npm install パッケージ --global
「-g」をした場合、作業ディレクトリのnode_modulesには追加されない。
その代わり「%AppData%/npm」に追加される。(Windowsの場合)
powhershell
> ls $env:AppData
~略~
d----- 2023/07/13 21:55 npm
~略~
補足: npm install オプション
npm install にはいくつかのオプションが用意されています。
npm help install を実行することで一覧を表示(ブラウザが開く)することができます。
save
save-exact
global
install-strategy
legacy-bundling
global-style
omit
strict-peer-deps
package-lock
foreground-scripts
ignore-scripts
audit
bin-links
fund
dry-run
workspace
workspaces
include-workspace-root
install-links