1
0

More than 1 year has passed since last update.

npm install パッケージ -g の「-g」について調べた

Posted at

何?何に使うの?

「-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
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0