2017-11-29 14 views
1

monorepo을 사용하여 lerna을 사용하고 있습니다. 메인 패키지, react 응용 프로그램 및 기타 구성 요소 인 react 구성 요소 인 응용 프로그램 (app)이 있습니다.monorepo에 대한 단일 종속성 관리

App.js는 여기가 react 부품 수출 CollectionBrowser 수입하고

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> 
    ); 
    } 
} 

:

import React, { Component } from 'react'; 

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

는 이제 버그 2 가지

CollectionBrowser.js이 있습니다 나 :

  1. 내 CollectionBrowser에서 react을 두 번, 내 기본 앱과 다른 시간에 두 번 가져 와서 번들로 제공하고 있습니다. react 번을 묶는 좋은 방법이 있습니까?
  2. 나는 내가 만든 각 패키지마다 하나씩 (또는 여럿의) 빌드 스크립트를 가지고있다. 하나의 번들러와 하나의 간헐적 인 프로세스를 갖는 좋은 방법이 있습니까?

답변

0

피어으로 반응했을 수 있습니다. 이렇게하면 반응에 기반한 프로젝트 중 하나가 버전을 선택할 수 있으며 필요한 패키지 만 추가 할 수 있습니다.

또는 두 번째 접근법은 라이브러리에 ui-core 패키지를 갖는 것입니다.이 ui-core는 종속성으로 반응 할 수 있으며 반응하는 다른 모든 패키지에서 필요할 수 있습니다.

2에 대해서는 패키지별로 모든 것을 빌드하고 릴리스합니다.

0

2에 대해서는 use Bit 수 있습니다.

기존의 응용 프로그램 (예 : React 구성 요소)의 일부를 분리하지 않고 프로젝트와 공유 할 수 있으며 NPM/원사에서 사용할 수 있습니다.

단일 프로세스를 사용하려면 add environments을 수행하면 매번 프로젝트에서 "게시"(공유)하는 모든 코드가 적용됩니다. 보세요, 희망이 도움이됩니다.