账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    按照koa-webpack中间件配置后,koa+webpack+react,还是不能无刷新的热更新,请高手指导一下,谢谢
    62
    0
    var path = require('path');
    var webpack = require('webpack');
    
    module.exports = {
      entry:['./client/main.js'],
      output:{
        filename:'bundle.js',
        path:'/',
        publicPath:'/',
      },
      module:{
        rules:[
          {
            test:/(\.js||jsx)$/i,
            use:{
              loader:'babel-loader',
              options:{
                presets:['env','react'],
                plugins: ['react-hot-loader/babel'],
              }
            },
            exclude:/node_modules/i,
          }
        ]
      },
    
      plugins:[
        new webpack.HotModuleReplacementPlugin()
      ]
    }
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 落花笑彷徨ㄟ 普通会员 1楼

      在Koa和Webpack以及React之间实现无刷新的热更新,我们需要配合一些中间件和一些特定的配置。以下是一个基本的示例,使用Koa作为服务器,Webpack作为构建工具,React作为前端组件,并配合使用Webpack的History API。

      首先,你需要在你的项目中安装以下依赖:

      bash npm install --save-dev koa webpack webpack-cli react-router-dom history

      然后,你需要在你的server.js中配置中间件:

      ```javascript const Koa = require('koa'); const webpack = require('webpack'); const history = require('history');

      const app = new Koa(); app.use(history.createHistory()); app.use(webpack);

      app.listen(3000, () => { console.log('App is listening on port 3000'); }); ```

      接下来,你需要在你的webpack.config.js中配置Webpack:

      javascript module.exports = { // ... module: { rules: [ { test: /\.js$/, use: [ 'babel-loader', { loader: 'webpack', options: { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist'), }, module: { rules: [ { test: /\.css$/, use: [ 'css-loader', ], }, ], }, resolve: { extensions: ['.js', '.jsx', '.ts', '.tsx'], }, }, }, ], }, ], }, };

      最后,你需要在你的App.js中使用Webpack的History API:

      ```javascript import React from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; import Home from './components/Home';

      function App() { return ( ); }

      export default App; ```

      这样,你就可以在React中使用Webpack的History API来实现无刷新的热更新了。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部