• ..

    ワークスペース

    ワークスペース機能を使うと1つのプロジェクトで複数のnpmパッケージを管理できるようになり、かつnode_modulesを1箇所にまとめることができます。

    設定

    プロジェクトルートのpackage.jsonへは以下のような設定が必要になります。

    {
      "private": true,
      "workspaces": [
        "packages/**/*",
        "example"
      ]
    }

    private:trueは必ず設定が必要です。workspacesへはパッケージとなる(package.jsonを持っている)ディレクトリへのパターンや相対パスを記述します。

    これで例えば、examplepackages/foo/hogeといったディレクトリがpackage.jsonを持っていればnpm管理プロジェクトだとすることができます。
    この状態でexamplepackages/foo/hoge双方でreactをインストールするとルートのnode_modulesだけにreactディレクトリが作られます。(bin系は各ディレクトリに作られる)

    ルートへのパッケージインストール

    ルートに共通パッケージをインストールしたい時などは-Wオプションが必要になります。