1

正在使用lerna. 我有一个主包,我的应用程序 ( app),它是一个react应用程序和几个其他包,它们通常是react组件。

应用程序.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>
    );
  }
}

在这里,我正在导入CollectionBrowser导出react组件:

CollectionBrowser.js

import React, { Component } from 'react';

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

现在有两件事困扰着我:

  1. 我要导入和捆绑react两次,一次在我的主应用程序中,另一次独立于我的 CollectionBrowser 中。有没有一种只捆绑react一次的好方法?
  2. 我有 2 个(或任意数量)构建脚本,一个用于我创建的每个包。难道没有一个很好的方法来拥有一个捆绑器和一个转译过程吗?
4

1 回答 1

0

您可以作为对使用它的每个包的对等依赖项做出反应。这样你的任何一个基于 react 的项目都可以选择它的版本,你可以只添加你需要的包。

或者第二种方法是在你的库中有一个 ui-core 包,然后这个 ui-core 可以作为依赖项进行反应,并且所有其他使用反应的包都可能需要它。

关于 2,我们基于每个包构建和发布所有内容。

于 2017-11-30T01:46:53.733 回答