独自のパッケージをテストする異なるアプローチ:ローカルファイル

はじめに

新しいパッケージを開発しているとしましょう。それがReactコンポーネントのかっこいいライブラリであろうと、NodeJSベースのプロジェクト用の新しいユーティリティセットであろうと、異なるノードバージョンに対応し、スムーズでエラーなしで動作することを保証する第一歩は、適切なテストセットを持っていることです。

ただし、npmyarnに公開する前に、あなたのプロジェクトの一つでローカルテストを行いたいかもしれませんね。そしてさらに広く考えて、最初のリリースだけでなく、公開する前に試したい新しいアップデートも考慮に入れたいですよね。

このシリーズの投稿では、この目的を達成するために使用できる4つの代替手段を説明します。難易度によって順番をつけましたが、それが唯一の要素ではありません。なぜなら、進んだ手法ほど簡単な手法にはないユーティリティセットを提供するからです。ですから、どれがあなたの使用例に最適かはあなたが決めることです。

私たちはこれらのテクニックを使用する方法と、利点を簡単に説明します:

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

それでは、最初のアプローチから始めましょう!

ローカルファイル

プロジェクトにローカル依存性からパッケージを追加する方法は非常に簡単で、以下のステップです。

まず、次の画像のようにプロジェクトが構成されていると想像してください。

Folder filesystem with two projects at same level

  • ライブラリのルートプロジェクトに行って、パッケージをインストールし、ローカルパッケージのライブラリをビルドしましょう:
$ cd my-fancy-library 
$ npm i && npm run build 
  • 次のステップでは、私たちのおしゃれなライブラリをローカルパッケージとして使用する必要があるプロジェクトに移動し、それをインストールします。
$ cd my-awesome-project 
$ npm i --save ../my-fancy-library 

このコマンドは、2つのプロジェクト間のリンクを作成し、ライブラリを依存関係として追加します。

package.lock entry with relative route to a my fancy library folder

そして、node_modules/@ks フォルダ内にシンボリックリンクを作成します。

my fancy library folder with sym link

  • ローカルパッケージを変更するたびにライブラリをリビルドしてプロジェクトが変更を検出してそれをリビルドさせる必要がありますが、... または、package.jsonファイルを更新して、変更のたびにライブラリをウォッチしてリビルドする新しいコマンドを追加できます: "build:watch": "rollup -c --watch && copyfiles -f ./src/**/assets/* ./dist/assets"

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