Skip to content

Instantly share code, notes, and snippets.

@LeeDDHH
Created September 9, 2021 02:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LeeDDHH/2fb2959ddeb5564ca157605f7830a24a to your computer and use it in GitHub Desktop.
Save LeeDDHH/2fb2959ddeb5564ca157605f7830a24a to your computer and use it in GitHub Desktop.
npmのworkspacesの使い方ついてまとめる

前提

  • workspaces は、ローカルファイルシステムでリンクされたパッケージを効率的に処理するためのオプション
    • パッケージで使うモジュールで重複されたものは1つに絞れる
  • npm のバージョンが7以上
  • 以下のプロジェクト構成だとする
    • . ├── A │   └── package.json └── package.json

手動で既存のプロジェクトで workkspaces の指定方法

プロジェクトのルートディレクトリの package.json で指定すること

  • workspaces の指定
    • 階層Aのワークスペースを使うことを記載する
    • ︙
      "workspaces": ["A"]
      "private": true //ルートディレクトリをパッケージとして公開しない場合
      ︙
      

A 内の package.json で指定すること

  • name の指定
    • ルートディレクトリにある package.json から参照できるようにする
    • ︙
      "name": "A"
      "private": true //Aディレクトリをパッケージとして公開しない場合
      ︙
      

workspaces 関連のコマンド

ワークスペースを初期化する

  • npm init -w ワークスペースで指定するディレクトリ
    • ワークスペースで指定するディレクトリに package.json が生成される
    • ルートディレクトリにある package.jsonworkspaces にワークスペースで指定するディレクトリが追加される

ワークスペースに向けてパッケージをインストールする

  • npm install インストールするパッケージ名 -w ワークスペース名
    • uninstallci などのコマンドも使える

コマンドを実行する

  • npm run コマンド -w ワークスペース名
    • 指定されたワークスペースでコマンドを実行する
  • npm run コマンド --workspaces
    • ルートディレクトリで指定したワークスペース全体にコマンドを実行する

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment