created: 2020-05-04T13:36:52.000Z
開発中のパッケージをrequireできる npm link を使う
npmパッケージを開発するとき、いちいちnpmにアップロードしてそれを使う側でinstallしてなどとやってられないので npm link という仕組みがある
たとえば api-client
パッケージというのがあり、それを service
パッケージで使いたい場合は以下のような手順になる
# api-clientのディレクトリに移動して npm link
$ cd api-clilent
$ npm link
...
# serviceディレクトリに移動して npm link api-clilent
$ cd service
$ npm link api-clilent
...
vscode
これだけだと vscode ではエラーになるので、 vscode を使ってる場合には package.json の依存管理の欄に api-client: ""
などと足しておく
何をやっているのか
symbolic link の仕組みが使われている
npm link
で、まずグローバルの node_modules 配下にapi-client
へ向いている symlink が作られるnpm link api-client
を実行すると、グローバルの node_modules/api-client 配下を見ている symlink が service/node_modules 配下にできる
npm unlink
貼ったシンボリックリンクを消したい場合は npm unlink で消すことができる
$ cd service
$ npm unlink api-clilent
$ cd ./../api-clilent
$ npm unlink