我有一个当前的网站,它通过常规的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}/*"
}
}
]
}