自作パッケージのローカルテストにおけるいくつかのアプローチ:npm link - DEV コミュニティ

この記事は一連の記事の一部です:

  1. ローカルファイルのリンク
  2. npm link
  3. npm yalc
  4. Verdaccio
  5. Relative deps

これは非常に簡単で直截的なソリューションです。このnpmコマンドは、パッケージフォルダへのシンボリックリンクを作成します。

自分のローカルライブラリを使用できるようにするには、次の2つの簡単な手順を踏む必要があります:

  1. まず、ローカルパッケージフォルダのルートでnpm linkを実行します。これにより、グローバルフォルダの{prefix}/lib/node_modules/<package>に、npm linkコマンドが実行されたパッケージにリンクするシンボリックリンクが作成されます。また、パッケージ内の任意のバイナリが{prefix}/bin/{name}にリンクされます。

    {prefix}はオペレーティングシステムによって異なるnpm変数です。現在の値を特定のケースで知るには、npm prefix –gを実行できます。

    一連の記事の最初の部分の例に従って:

    プロジェクト構造

    my-fancy-libraryというフォルダに@ks/my-fancy-libraryという名前のローカルパッケージ(package.jsonファイルのname属性で定義されている)があると想像しましょう。

$ npm prefix –g
$ /Users/inigo/.nvm/versions/node/v16.13.1
$ cd my-fancy-library
$ npm link


    これにより、以下の場所にシンボリックリンクが作成されます:

    ![グローバルnpmフォルダ内のライブラリへのシンボリックリンク](https://res.cloudinary.com/practicaldev/image/fetch/s--ob7xQhz_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k5eqtvsyflnc38fx8uai.png)

2. 次に、ローカルパッケージを使用したいプロジェクトのルートフォルダで`npm link <package-name>`を実行します。これにより、グローバルにインストールされたpackage-nameから現在のフォルダの`node_modules/`へのシンボリックリンクが作成されます。

    ```
$ cd my-awesome-project # 我々がパッケージを使用したいプロジェクトのルートフォルダ
$ npm link @ks/my-fancy-library
これにより、`node_modules`フォルダにシンボリックリンクが作成されます。

![プロジェクトのnode_modulesフォルダ内のライブラリへのシンボリックリンク](https://res.cloudinary.com/practicaldev/image/fetch/s--GTYMZMM5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q5qt7wackrwpt8ooykuu.png)

そして、私たちのプロジェクトmy-awesome-projectから、ローカルライブラリ@ks/my-fancy-libraryをインポートして使用できるようになります。

🚨 重要
これらのコマンドを実行するとき、使用される現在のnodeバージョンが考慮されます。異なるnode環境でライブラリをテストしたい場合は、各nodeバージョンごとにプロセスを繰り返す必要があります。

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/one-beyond/different-approaches-to-testing-your-own-packages-locally-npm-link-4hoj