bauer's diary

凡人の凡人による凡人のための備忘録

package.jsonのdependenciesにローカルファイルを指定する

依存するプロジェクトを同時に修正している場合どうしていますか?
自分はこれまでは使いたいプロジェクト側(Aとします)のpackage.jsonに、対象プロジェクト(Bとします)のパスを直接書いていました。

{
  …
  "dependencies": {
    "test": "../workspace/test"
  }}

しかしこれだとBを修正するたびに、Aでnpm installして格納したnode_modules配下のBをいちいち更新しなければならなかったので微妙だなぁと思っていました。

なので下記方法に変更しました。

まずpackage.jsonを修正します。バージョンを直接指定します。

{
  …
  "dependencies": {
    "test": "1.0.0"
  }}

その後に、npm linkコマンドでシンボリックリンクを貼ります。

$ npm link ../workspace/test
$ ls -la node_modules/test
lrwxr-xr-x  1 hoge  fuga Users  49  2  5 15:05 node_modules/test/ -> ../workspace/test
$ npm install

シンボリックリンクなのでBに対する修正はそのまま反映されます。

package.jsonはそのままでした。

{
  …
  "dependencies": {
    "test": "1.0.0"
  },
  …
}

これでおーけーね♡