为多个应用创建React App?

时间:2018-02-08 20:36:15

标签: javascript reactjs webpack create-react-app

说我有很多小应用程序,我是否需要为每个应用程序创建一个create-react-app?或者我可以有一个create-react-app。后者是我的首选,因为我不希望每个应用程序都有单独的node_modules。因为在npm安装之后它就是百兆字节。

如果有可能,我需要使用什么样的锅来创建多个应用程序,这是一个webpack的事情吗?

4 个答案:

答案 0 :(得分:1)

要创建新应用,是的,我们每次都需要创建,但是,如果我们希望所有小应用都包含在一个大应用中,则可以将这些小应用开发为“组件”(单独执行)并集​​成到一个应用中。

答案 1 :(得分:1)

您可以使用环境变量来执行此操作。
以“REACT_APP_”开头的环境变量可通过 process.env.REACT_APP_[NAME]

在浏览器中使用

如果您使用像 WebStorm 这样的 IDE,您可以为每个应用程序创建不同的运行配置,并将环境设置为 REACT_APP_SETUP=app1 例如。

在shell中你可以这样设置:

export REACT_APP_SETUP=app1
npm start

然后你只需在 index.js 中渲染不同的根组件

    // in index.js
    const setup = process.env.REACT_APP_SETUP;
    
    if (setup == "app1") {
        ReactDOM.render(<App1/>,document.getElementById('root'));
    } else {
        ReactDOM.render(<App2/>,document.getElementById('root'));
    }

答案 2 :(得分:0)

当您通过create-react-app创建应用时,您可以从头开始创建一个新的应用。这些应用程序使用单独的配置文件,并不意味着&#34; talk&#34;对彼此。你能做的就是把每个&#34; app.js&#34;将文件放在一个共享的react-app中,然后重新排列这些类以共享其内容(请参阅导入/导出)。但根据我的理解,在一个巨大的应用程序中不可能有多个反应应用程序

答案 3 :(得分:0)

您可以考虑使用react-app-rewired

但是你不会得到create-react-app团队的任何支持,因为它是你自己的配置。 另一个明显的解决方案是弹出。

参考 https://medium.com/@timarney/but-i-dont-wanna-eject-3e3da5826e39