2017-06-07 7 views
0

オープンソースのライブラリ作成者、特にReact関連には、複数のReactコンポーネントを作成して公開するのが一般的です。しかし、Reactが新しいバージョン(例えば、v16)をリリースすると、これらのコンポーネントのそれぞれを最新のReactバージョンにアップグレードするのは面倒です。複数のnpmプロジェクト間で依存関係をアップグレードする便利な方法は何ですか?

安定性を念頭に置いて、これらすべてのパッケージのReact依存関係をアップグレードする便利な方法はありますか?私は手動で各プロジェクトに行き、npm updateを実行するのはそれほど時間がかかりそうではありません。私はスクリプトを書くことを考えていましたが、そこにツールがあれば同じか、それ以上のことができ、一度にすべてのプロジェクトのパッケージをアップグレードできますか?

この質問は本当にReactに特有のものではなく、Angular、Vueなど、または一般的に使用される他のnpmライブラリにも適用できます。依存関係を更新する

答えて

2

最も簡単な方法:

npm update 

それは例えば、package.jsonにのみ基づいた範囲で更新されます。 1.0.0から1.9.0までであり、2.0.0までではない。 semantic versioningを参照してください。 package.jsonで自動メジャーバージョンのアップグレードをセットアップすることはお勧めできません。したがって、通常npm updateはメジャーリリースを無視します。

のメジャーバージョンをアップグレードする場合は、それはもっと難解です。 libに大きな変更が加えられる可能性が高く、も同様ににアップグレードする必要があります。 更新最新のバージョンのお手伝いをすることができますどのような

は、このライブラリnpm-check-updatesです。

このライブラリは最新のパッケージを検索し、アップデートすることもあります。

具体的にはReactの場合、カスタムWebpackビルドを必要としない場合は、CLIを使用できます。 React-create-appは、React、ReactDOM、Jest、Webpackなどの隠れた依存関係を持つアプリケーションを作成します。アップグレードする場合は、React & Webpackスタック全体の依存関係を更新するだけで簡単です。あなたが同様のアプリケーションを構築している(ただし、ReactCLIを使用することはできません)場合は、すべてのアプリケーションで再利用される可能性がありますし、それがビルドプロセスをカバーする独自のWebPACKの構成を構築することができ

npm install -g create-react-app 
create-react-app my-app 
cd my-app/ 
npm start 

。これは、のような依存関係を構築する隠すかもしれないWebpackReactRouterなど

更新:を迅速かつシームレスに複数のプロジェクトをアップグレードすることは可能ですか?例えば。簡単なスクリプトで。

これはおそらく非常に複雑で不可能です。あなたは、異なるlibのいくつかの互換性のないバージョンがあるかもしれないので、すべてのプロジェクトで全く同じ依存関係を持つ必要があります。おそらく最善の方法は、react-cliのような共通のライブラリスタックを作成し、このスタックを単一の依存関係として使用することです。しかし、スタックの依存性をアップグレードした後に、各プロジェクトを個別にアップグレードしてテストする必要があります。通常は、APIの変更によってコードベースをアップグレードする必要があります。更新スクリプトを作成するのはかなり複雑で、おそらくそれに値するものではないかもしれません。

+0

糸を使用するとさらに優れています。 :) –

+0

あなたの答えをありがとう!申し訳ありませんが、私はここで別の質問をしています。 私は1つのプロジェクトの依存関係を更新する方法を知っています。私の問題は、一度に複数のパッケージの依存関係を更新したいということです。 –

+0

私はレスポンスを更新しました。そのようなアップグレードスクリプトを作成する価値はあまりありません。複雑でライブラリのAPIはかなり頻繁に変更されます... 多分、他の誰かがこの経験をしていますが、そして、もしあなたがインストールをスピードアップしたい、あるいは更新したいのであれば、 'npm4'より数倍速く、' npm5'よりも少し速く '糸 'を試してみてください。 – Jurosh

関連する問題