当前位置: 首页 > 面试题库 >

如何允许webpack-dev-server允许react-router的入口点

戚俊人
2023-03-14
问题内容

我正在创建一个使用webpack-dev-server和react-router进行开发的应用程序。

似乎webpack-dev-server是建立在以下假设的基础上的:您将在一个位置拥有一个公共入口点(即“ /”),而react-
router允许无限数量的入口点。

我想要webpack-dev-server的好处,特别是对生产力非常有用的热重载功能,但是我仍然希望能够加载react-router中设置的路由。

一个人如何才能实现它以使其协同工作?您能以这种方式在webpack-dev-server前面运行快速服务器吗?


问题答案:

我设置了代理来实现此目的:

您有一个常规的快速网络服务器,可以在任何路由上为index.html提供服务,除非它是资产路由。如果是资产,则请求将被代理到web-dev-server

您的反应热入口点仍将直接指向webpack开发服务器,因此热重装仍然有效。

假设您在8081上运行webpack-dev-server,在8080上运行代理。您的server.js文件将如下所示:

"use strict";
var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var config = require('./make-webpack-config')('dev');

var express = require('express');
var proxy = require('proxy-middleware');
var url = require('url');

## --------your proxy----------------------
var app = express();
## proxy the request for static assets
app.use('/assets', proxy(url.parse('http://localhost:8081/assets')));

app.get('/*', function(req, res) {
    res.sendFile(__dirname + '/index.html');
});


# -----your-webpack-dev-server------------------
var server = new WebpackDevServer(webpack(config), {
    contentBase: __dirname,
    hot: true,
    quiet: false,
    noInfo: false,
    publicPath: "/assets/",

    stats: { colors: true }
});

## run the two servers
server.listen(8081, "localhost", function() {});
app.listen(8080);

现在在webpack配置中设置入口点,如下所示:

 entry: [
     './src/main.js',
     'webpack/hot/dev-server',
     'webpack-dev-server/client?http://localhost:8081'
 ]

请注意直接致电8081进行hotreload

还要确保将绝对网址传递给该output.publicPath选项:

 output: {
     publicPath: "http://localhost:8081/assets/",
     // ...
 }


 类似资料:
  • 我正在创建一个应用程序,它在开发中使用webpack-dev-server和react-router。 似乎webpack-dev-server是基于这样一个假设构建的,即在一个地方(即“/”)有一个公共入口点,而react-router允许无限数量的入口点。

  • 我一直在捕捉非数字时遇到问题。 我试过了,但抓不住。如果我让它捕获非数字,但不让用户再次尝试输入。。。它完全停止了我的代码。 这是我的密码:

  • 我使用的是React路由器V4,我有此路由器的配置: 是可选的语言参数,它应该与模式匹配,例如、或不匹配。例如,应用程序利用这些路由: 另外,我还有一个额外的组件,在其中我定义了函数的路由: 因此,我希望实现的结果是,只接受允许的语言代码(和空参数),而不接受的代码将被重定向到组件。 可能吗?如何实现这一目标? 非常感谢这个例子

  • 问题内容: 我希望我的应用程序将应用程序数据库归档到SD卡。在我的代码中,我检查目录是否存在,如果不存在,则抛出。在此特定情况下,我尝试将db文件复制到SD卡上的根目录,但是会抛出。如何更改文件夹/文件的权限以能够写入? 问题答案: 没错,SD卡目录位于其中,但您不应该对其进行硬编码。而是调用以获取目录: 如果尚未执行此操作,则需要在清单中添加以下行,以授予您的应用正确的写入SD卡的权限:

  • 我正在尝试允许SQL Server Express的远程连接。当使用Visual Studio从计算机A连接到计算机B上的SQL Server时,出现错误: 建立与SQL Server的连接时发生网络相关或实例特定的错误。找不到或无法访问服务器。验证实例名称是否正确,以及是否将SQL Server配置为允许远程连接 我遵循了下面的步骤,但没有帮助。 在要从远程计算机连接到的SQL Server实例

  • 我试图从JS/Ajax向我的WebAPI发出请求时遇到了问题。在我的解决方案中,我有一个发布在srv02:2400上的Web API,我的网站发布在srv02:2300上 当我导航到页面时http://srv02:2300/all-请求。aspx,页面加载正常,除了应该来自我的API的数据 我得到了一个错误: 但是,如果我把url超文本传输协议://srv02:2400/api/请求/查找/1粘贴