React Create App如何创建构建,连接构建以及它如何支持多个构建文件?

时间:2018-03-26 16:32:18

标签: reactjs create-react-app

我有一个当前的网站,它通过常规的Visual Studio(而非VS代码)生成多个版本。

我们基本上做到了:

module.exports = {
    context: __dirname + "/Scripts",
    entry: {
        build1: './Layout/functionality1.jsx',
        build2: './Layout/functionality2.jsx',
        ...
    },
...

然后,对于特定的index.cshtml文件,我包括:

<script src="@Url.Content("~/Scripts/Build/build1.js")"></script>

这很好用,但缺点是每次在开发周期之间使用webpack构建。我通过Visual Studio Code(非常规Visual Stuido)一直在玩Create React App,它使用npm start来创建构建。同样,在更新和保存Create React App附带的App.js文件时,它会自动更新localhost。这绝对是非常棒的。

我想在我当前的网站上实现这一点,但是在研究创建反应应用程序如何将app.js文件添加到我们的html中时,它对我来说变得不那么有意义了。不在index.html文件的内部,我们称之为任何类型的build.js。事实上,我找不到这个html文件中任何地方的js文件的引用。

这些文件在何处以及如何链接以创建反应应用? html在哪里调用js? index.html根本没有参考。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="theme-color" content="#000000">
    <!--
      manifest.json provides metadata used when your web app is added to the
      homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
    -->
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json">
    <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
    <!--
...
    -->
    <title>React App</title>
  </head>
  <body>
    <noscript>
      You need to enable JavaScript to run this app.
    </noscript>
    <div id="root"></div>
    <!--
...
    -->
  </body>
</html>

但我可以看到index.js在index.html中引用root元素的位置。

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';

ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();

如果我理解这是怎么回事,那么我的印象是我可以弄清楚如何将三个不同的主文件连接到这个Visual Studio代码项目然后使用我以前的构建文件基本上就像这样

http://localhost:3000/functionality1

http://localhost:3000/functionality2

http://localhost:3000/functionality3 ...

编辑:

这是我的配置文件:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Chrome",
      "type": "chrome",
      "request": "launch",
      "url": "http://localhost:3000",
      "webRoot": "${workspaceRoot}/src",
      "sourceMapPathOverrides": {
        "webpack:///src/*": "${webRoot}/*"
      }
    }
  ]
}

0 个答案:

没有答案