2017-11-29 21 views
1

私はモノレポを使ってlernaを使っています。私は主なパッケージ、私のアプリケーション(app)、reactアプリケーションといくつかの他のパッケージは、しばしばreactコンポーネントです。monorepoの単一依存関係管理

App.js

import React, { Component } from 'react'; 
import CollectionBrowser from '@elmc/app-collection-browser'; 
import './App.css'; 

export default class App extends Component { 
    render() { 
    return (
     <div className="App"> 
     <header>...</header> 
     <CollectionBrowser /> 
     </div> 
    ); 
    } 
} 

ここで私はreactコンポーネントをエクスポートたCollectionBrowserをインポートしています:

CollectionBrowser.js

import React, { Component } from 'react'; 

export default class CollectionBrowser extends Component { 
    render() { 
     return <div>foobar</div>; 
    } 
} 

は今、そのバグ2つのものがあります私:

  1. react私のメインアプリケーションで1回、それと独立して、CollectionBrowserで2回、インポートしてバンドルしています。 reactを一度だけバンドルする良い方法はありますか?
  2. ビルドスクリプトは、作成するパッケージごとに1つずつ(または任意の数)用意されています。 1つのバンドラーと1つの蒸散プロセスを持つ良い方法はありませんか?

答えて

0

これを使用する各パッケージにピアとして反応する可能性があります。このようにして、反応に基づくプロジェクトのいずれかがバージョンを選択でき、必要なパッケージのみを追加できます。

または、2番目のアプローチは、ライブラリにui-coreパッケージを入れることです。このui-coreは、依存関係として反応する可能性があり、反応する他のすべてのパッケージで必要となる可能性があります。

2については、パッケージごとにすべてをビルドしてリリースします。

0

2については、use Bitとすることができます。

これを使用すると、既存のアプリケーションの一部(例えば、リアクトコンポーネント)を切り離さずにプロジェクトから共有することができ、NPM /糸で利用できるようになります。

単一のプロセスを使用するには、add environmentsを実行して、毎回プロジェクトから「公開」(共有)するすべてのコードに適用します。見て、 これが役立つことを願っています。