学习webpack,基本始终是围绕:

  1.如何安装webpack
  2.如何使用webpack
  3.如何使用loader
  4.如何使用开发服务器

  可能我们会在如何使用开发服务器的时候,遇到诸如调试的相关问题:

  使用开发服务器

  我们webpack中使用的开发调试服务器通常是 webpack-dev-server,通过这个服务我们更多的是想实现无刷新的处理编译入口文件。 

  通过以下命令全局安装

1
npm install webpack-dev-server -g

  启动服务器

1
webpack-dev-server --progress --colors

  这会绑定一个小型express服务器到localhost:8080,来为你的静态资源及bundle(自动编译)服务。通过访问http://localhost:8080/webpack-dev-server/bundle,bundle每次重编译后浏览器页面都会自动更新。

  但这里可能会遇到,我们改动js文件,无法实时更新的问题,很大一部分原因是没有理解编译后的bundle是虚拟的问题,本地其实质是没有编译的,所以我们不能用本地的路径去处理,需要进行更改为http://localhost:8080/bundle.js.

  我们可能预想实现无刷新是这样的:

  1. js 文件修改
  2. webpack-dev-server 监控到变化
  3. webpack 重新编译
  4. 实时更新浏览器中的页面

  但可惜的是,http://localhost:8080/index.html 对 js 文件的变化无动于衷,改完之后,手动刷新才能生效。

  webpack-dev-server 提供了两种模式用于自动刷新页面:

  1. iframe 模式

    我们不访问 http://localhost:8080,而是访问http://localhost:8080/webpack-dev-server/index.html

  2. inline 模式

    在命令行中指定该模式,webpack-dev-server --inline。这样http://localhost:8080/index.html 页面就会在 js 文件变化后自动刷新了。

  由于如此我的package.json文件可能就是这样,方便我去快速启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
  "name""react-sample",
  "version""1.0.0",
  "description""webpack demo",
  "main""./src/entry.js",
  "scripts": {
    "start""webpack-dev-server --inline --hot",
    "build""webpack --display-error-details",
    "watch""webpack --progress --colors --watch"
  },
  "repository": {
    "type""git",
    "url""https://github.com/dwqs/react_practice.git"
  },
  "keywords": [
    "react",
    "webpack"
  ],
  "author""pomy",
  "devDependencies": {
    "babel-core""^5.8.25",
    "babel-loader""^5.3.2",
    "react""^0.14.5",
    "react-dom""^0.14.5",
    "react-hot-loader""^1.3.0",
    "webpack""^1.12.2",
    "webpack-dev-server""^1.14.0"
  }
}

  解释一下官方推荐的无刷新:

  示例代码:

  package.json

"scripts": {"dev": "webpack-dev-server --devtool eval --progress --colors --hot --content-base build",/*build导致找不到页面 cannot file*/"hot": "webpack-dev-server  --devtool eval --progress --colors --hot --content-base",}

   webpack.config.js

module.exports = {entry: ['webpack/hot/dev-server','webpack-dev-server/client?http://localhost:8080',path.resolve(__dirname, './src/entry.js')]
};

  官方的无刷新,其实是在前面讲到的iframe实现的实时刷新,如果我们,至进行http://localhost:8080/index.html是不会进行实时刷新的。还有一点,就是官方后面加的build,作用时让其监测,打包出bundle.js,但亲测会导致,到cannot page file, 所以建议,调试完毕之后,手动打包。

 

  最近给大家一个建议,多看官方的示例文档,这才是快速入门的最佳渠道,webpack官方文档。 

  注意:通常我们设置好webpack-dev-server服务自动刷新预览功能之后,发现手机预览不了,其实是由于webpack-pack-server服务安全机制导致的,只允许本机访问,我们可以把host设置为0.0.0.0就可以允许或者设置为本机地址。

  解决参考资料:stackoverflow问答  stackoverflow问答2  github isuues

参考资料:

  webpack 使用教程

  Webpack-dev-server结合后端服务器的热替换配置

  webpack入门(译)

  webpack插件实现实时刷新

  WebPack 常用功能介绍

  在express服务中搭建webpack-dev-server

  基于webpack搭建前端工程解决方案探索

  自己在项目中实现的热更新

简简单单,pfan!出来混的,一切都是要还的。

转载于:https://www.cnblogs.com/chris-oil/p/6241741.html

webpack 使用教程--实时刷新测试相关推荐

  1. webpack使用教程

    webpack使用教程 1.webpack安装 webpack依赖于node环境,所有安装webpack前先安装node环境.如果你用过baota那么安装node基本是一键化的了.没使用过baota也 ...

  2. webpack打包教程

    webpack打包教程 基础教程 首先要保证装了nodejs和npm 第一步:创建文件夹,命名为finance-scopa 第二步:win+R,输入cmd,进入命令行窗口, 第三步:进入finance ...

  3. webpack基础教程

    webpack基础教程 一 webpack五大核心 二 webpack处理css资源 三 webpack处理less.scss.sass.styl资源 四 webpack-module的详细配置 五 ...

  4. mars3d - Webpack打包教程

    mars3d - Webpack打包教程 1.新建文件夹mars3d-webpack 2.初始化 npm,然后 在本地安装 webpack,接着安装 webpack-cli(此工具用于在命令行中运行 ...

  5. webpack安装教程及webpack-dev-server

    zn​​​​​​​webpack安装教程_彳亍的博客-CSDN博客_webpack安装教程 webpack\webpack-cli上方文章写的非常好了,直接按步骤来就行,也可以通过cnpm安装(把np ...

  6. Webpack 入门教程

    Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源. 本章节基于 Webpack3.0 测试通过. 从图中我们可以看出,W ...

  7. 超详细 WebPack 入门教程

    前端工程化 1.什么是前端工程化 前端工程化指的是: 在企业级的前端项目开发中,把前端开发所需要的工具,技术,流程,经验等进行规范化,标准化. 1)模块化 (js的模块化,css的模块化,资源的模块化 ...

  8. Webpack 4教程:为什么要优化代码

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://wanago.io/2018/07/30/webpack-4-course-par ...

  9. Webpack详细教程

    webpack教程 第 1 章:webpack 简介 1.1 webpack 是什么 1.2 webpack 五个核心概念 1.2.1 Entry 入口(Entry) 1.2.2 Output 输出( ...

最新文章

  1. 人生必须知道的十个为什么
  2. R语言检验类别型变量独立性
  3. JavaScript强化教程——对象的值传递和引用传递
  4. POJ-1430 Binary Stirling Numbers 组合数学
  5. bleve搜索引擎源码分析之索引——mapping真复杂啊
  6. Python基础教程:条件语句的七种写法
  7. 信息系统项目管理师优秀论文:论信息系统范围管理02
  8. Canvas 学习笔记1
  9. decode and nvl and sign
  10. 向量加减法首尾规律_向量加减口诀首尾相接
  11. ScrollView中嵌套recycleView 出现的不显示,显示不全,终极解决方案
  12. 服务器上的文件如何查看,如何查看远程服务器上的文件
  13. sql 触发器未触发_SQL触发器–综合指南
  14. 三菱plc分拣程序_三菱PLC实现电梯控制方案,含全套程序设计
  15. 智能体挑战赛 - “奥林匹克 跑步运动”
  16. 第十届泰迪杯数据挖掘B题:电力系统负荷预测分析--解题思路与部分代码01
  17. web of science /pubmed主要可检索字段
  18. 基于DFSMN-CTC及CTC-CE联合训练的声学模型
  19. 外卖点餐管理系统源码
  20. python计算bmi_Python BMI 计算

热门文章

  1. IT治理和IT管理的区别
  2. nanopi如何与虚拟机连接起来
  3. 系统检测到您正在使用网页抓取工具_【安全】58反抓取简介
  4. linux中facl有什么作用,在Linux中使用setfacl后权限被拒绝
  5. 新国货品牌数字营销系列报告丨探析鞋服行业数字营销一体化建设
  6. 报名倒计时 | 挣脱流量束缚,社交电商的未来在哪里?
  7. 转:更改pip源至国内镜像,显著提升下载速度
  8. vim基础-一般模式
  9. Commons BeanUtils包学习2
  10. hg 全局密码配置。