ruby-on-rails – 使用Webpacker的React Rails不热重新加载
发布时间:2020-12-17 02:10:26 所属栏目:百科 来源:网络整理
导读:我已经在现有项目中添加了react-rails,我们正在慢慢迁移以做出反应. 目前的webpacker.yml default: default source_path: app/javascript source_entry_path: packs public_output_path: packs cache_path: tmp/cache/webpacker # Additional paths webpack
我已经在现有项目中添加了react-rails,我们正在慢慢迁移以做出反应.
目前的webpacker.yml default: &default source_path: app/javascript source_entry_path: packs public_output_path: packs cache_path: tmp/cache/webpacker # Additional paths webpack should lookup modules # ['app/assets','engine/foo/app/assets'] resolved_paths: [] # Reload manifest.json on all requests so we reload latest compiled packs cache_manifest: false extensions: - .jsx - .js - .sass - .scss - .css - .module.sass - .module.scss - .module.css - .png - .svg - .gif - .jpeg - .jpg - .tsx - .ts development: <<: *default compile: true # Reference: https://webpack.js.org/configuration/dev-server/ dev_server: https: false host: localhost port: 3035 public: localhost:3035 hmr: true # Inline should be set to true if using HMR inline: true overlay: true compress: true disable_host_check: true use_local_ip: false quiet: false headers: 'Access-Control-Allow-Origin': '*' watch_options: ignored: /node_modules/ 我在一个终端启动rails应用程序,在另一个终端启动./bin/webpack-dev-server,我可以看到编译中出现的热模块: [./node_modules/webpack-dev-server/client/index.js?http://localhost:3035] (webpack)-dev-server/client?http://localhost:3035 7.93 kB {0} {1} [built] [./node_modules/webpack-dev-server/client/overlay.js] (webpack)-dev-server/client/overlay.js 3.67 kB {0} {1} [built] [./node_modules/webpack/hot/dev-server.js] (webpack)/hot/dev-server.js 1.61 kB {0} {1} [built] [./node_modules/webpack/hot/emitter.js] (webpack)/hot/emitter.js 77 bytes {0} {1} [built] [./node_modules/webpack/hot/log-apply-result.js] (webpack)/hot/log-apply-result.js 1.31 kB {0} {1} [built] [./node_modules/webpack/hot/log.js] (webpack)/hot/log.js 1.04 kB {0} {1} [built] [0] multi (webpack)-dev-server/client?http://localhost:3035 webpack/hot/dev-server ./app/javascript/packs/application.js 52 bytes {1} [built] [1] multi (webpack)-dev-server/client?http://localhost:3035 webpack/hot/dev-server ./app/javascript/packs/server_rendering.js 52 bytes {0} [built] 问题是我正在运行./bin/webpack-dev-server我每次更新反应文件时都会刷新整页(而不是刚更新的组件).只有在dev服务器运行时才会刷新整页.此外,在整页刷新之前,我没有看到组件更新. 所以问题是,为什么webpack-dev-server发信号通知浏览器页面刷新,为什么组件不热重新加载? 解决方法
这就是Webpack HMR的工作原理,如果你想在你的反应模块上启用HMR,你可以试试
React Hot Loader和
Webpack plugin
.用纱线安装反应装置 .编辑.babelrc文件并将react-hot-loader / babel添加到插件列表中. .使您的React组件“热”. import React from 'react' import { hot } from 'react-hot-loader' class Example extends React.Component { } export default hot(module)(Example); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |