项目地址:http://pan.baidu.com/s/1i5KCXBf

今天上午和同事完成了在mac上面调试了我的框架,最后发现问题出在window系统和mac系统在表示路径的时候出现问题,在解决这个问题后,在同事的建议下,对项目的目录做了一个优化,把所有的资源文件放在assets目录,打包后去掉了一层pro目录这样看上去清爽了很多,下午开始了最坑爹的热替换。

热替换其实很早就开始研究了,但是一直没有头绪,今天是要必须解决了,具体解决方式:

1:我决定单独把热替换的配置代码写在一个文件里,然后在package里面配置一下就可以直接运行这个文件了:"test": "node dev-server",这样我npm test 实际上运行的是dev-server文件,我dev-server文件里面主要是写了热替换的代码

2:dev-server文件这里面用WebpackDevServer来定义访问地址和监听端口,然后我就npm start运行啊,想要看到理想中的效果啊,但是现实是残酷的,并美誉热替换

3:继续找啊,终于让我找到了,一片文章说可以在html手动引入<script type="text/javascript" src="http://localhost:8099/webpack.config.js"></script>来让wbepack使用websoket监听代码的变化,于是我就加上去啊,还是不行 有一个警告,上面说我的vue-loader只适合vue1.0,我咨询了我的同事,我同事说他也遇到这种问题,说vue-loader 9.0一下只支持vue1.0,9.0以上支持vue2.0,我高兴啊 立刻更新了vue-loader到最新的11.0.0,然而奇迹并没有发生。

4:又来一个错,说我的vue的版本和vue-temeplete-compiler版本不一致(欲哭无泪),继续寻找解决方案,又有一片文章说也遇到这种问题,他的解决方案是强制使vue和vue-temeplte-compiler的版本一致,于是我就强制指定啊 指定为2.0.9,终于解决了,不报错了

5:我欢天喜地的准备开始热替换,fuck!!!!编译又通不过了,压缩出现问题。。。。。,我咨询了我的同事,幸好她也遇到这种问题,他发给我一个文件.babelrc放在根目录,我放进去后继续打包,我擦 竟然通过了,666

6:终于可以热替换了,但是好像我的webpack.config.js是手动写在html里面的,那项目大了几十个页面难不成我要一个个写吗,这肯定不行啊,继续寻找解决方案,已经快吐血了,找到一篇文章,作者说可以通过写一个webpack插件,在插件里面监听HtmlWebpackPlugin事件,在他写入js文件的时候,我把我手动写的一条js引用路径加上去(原谅我说的不清楚,因为我也不是很懂。。。。。http://www.cnblogs.com/haogj/p/5649670.html)照着作者的思路写一遍(我写的第一个webpack插件-hotUpdate),可以啦,我都有点崇拜我自己了。。。。

7:到现在热替换终于可以了,但是我们一般测试的时候不需要压缩,生产环境不需要引入那个热替换的js,所以肯定要分生产环境和测试环境啊,我有一个思路,就是package里面的scripts里面可以预设一些脚本命令,于是我在里面写了一个test这个主要是执行我的测试环境,写了一个start里面主要是执行我的生产环境,然后测试环境和上产环境的配置文件分两个。。。。。。

8:到此差不多可以了,解决了心头大患,但是还是有瑕疵的 第一个就是运行测试环境前 前提是运行一次生产环境。。。。第二个就是我引入的base.css目前还不能添加版本号。。。。

vue+webpack热替换的更多相关文章

  1. vue 无法热替换/热更新

    参考了小伙伴的解决办法: 1.https://blog.csdn.net/win7583362/article/details/65443291 虽然我并不是用对方的方法解决的. 依然还是建议大家打开 ...

  2. webpack 热替换

    一. 使用express.js搭建一个简易服务器demo地址,热替换的 先看包 // 清除重复的文件 "clean-webpack-plugin" // css加载器 " ...

  3. webpack热替换原理

    前期准备: const path = require('path'); const HtmlWebpackPlugin= require('html-webpack-plugin'); const C ...

  4. Vue CLI3 关闭热替换后出现的warning

    用vue cli3做项目的时候如果开启了typescript的严格模式,在dev server热替换的时候往往就会打出一大堆warning,严重的影响了编译效率.官方并没有提供关闭warning的ap ...

  5. 【webpack】-- 模块热替换

    全称是Hot Module ReplaceMent(HMR),理解成热模块替换或者模块热替换都可以吧,和.net中的热插拔一个意思,就是在运行中对程序的模块进行更新.这个功能主要是用于开发过程中,对生 ...

  6. Webpack 开发工具与模块热替换

    Webpack 开发工具与模块热替换 ​⚠️ 注意: 永远不要在生产环境中使用这些工具,永远不要. devtool 当 JavaScript 异常抛出时,你常会想知道这个错误发生在哪个文件的哪一行.然 ...

  7. 【webpack学习笔记】a05-模块热替换

    什么是模块热替换? 这个功能会在程序运行过程中替换.添加或删除模块,而无需重新加载整个页面 有什么用呢? 保留在完全重新加载页面时丢失的应用程序状态. 只更新变更内容,以节省宝贵的开发时间. 调整样式 ...

  8. 启用 webpack 的模块热替换特性

    启用 webpack 的模块热替换特性: module.exports = { //... devServer: { hot: true } } 注意,必须有 webpack.HotModuleRep ...

  9. webpack学习_模块热替换(Hot Module Peaplacement)

    模块热替换(Hot Module Replacement 或 HMR) 是webpack提供的最有用的功能之一.允许在u女性是更新各种模块,而无需进行完全刷新. 启用HMR 承接之前的代码 webpa ...

随机推荐

  1. topcoder srm 420 div1

    problem1 link 暴力即可.因为即便所有数字的和是50,50所有的不同的划分数只有204226中.所以最长的循环也就这么大. problem2 link 令$f[i][j]$表示有$i$个红 ...

  2. Delphi XE5 for Android (九)

    Delphi XE5 下TEdit控件有个属性:KeyboardType,如下图:   该属性决定了当焦点进入TEdit时,系统弹出的输入窗体,按照其帮助文件说明,不同取值的输入窗体不同,如下图: 根 ...

  3. repo总结【转】

    本文转载自:https://blog.csdn.net/weixin_38599972/article/details/78982408 1. repo start  ##创建并切换分支repo st ...

  4. HTTP协议请求类型介绍

    HTTP协议中共定义了八种方法或者叫"动作"来表明对Request-URI指定的资源的不同操作方式,具体介绍如下: OPTIONS: 返回服务器针对特定资源所支持的HTTP请求方法 ...

  5. 解决Android Studio No cached version of org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.50 available for offline mode.

    打开 file --> Settings... --> Build,Execution,Deployment下点击 Gradle 在Global Gradle settings 处 取消勾 ...

  6. PS与PL协同设计

    https://blog.csdn.net/Fei_Yang_YF/article/details/79676172 什么是PS和PL ZYNQ-7000是Xilinx推出的一款全可编程片上系统(Al ...

  7. Codeforces Round #117 (Div. 2) D.Common Divisors(KMP最小循环节)

    http://codeforces.com/problemset/problem/182/D 题意:如果把字符串a重复m次可以得到字符串b,那么我们称字符串a为字符串b的一个因子,现在给定两个字符串S ...

  8. HDU 5919 Sequence II(主席树+区间不同数个数+区间第k小)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=5919 题意:给出一串序列,每次给出区间,求出该区间内不同数的个数k和第一个数出现的位置(将这些位置组 ...

  9. 51nod 1020 逆序排列

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1020 题意: 思路: 一开始用了三重循环... 设f(n,k)表示n个数 ...

  10. Python Scrapy安装

    直接安装scrapy 各种报错,后来各种百度终于解决了,如下是亲身的经历. pip install scrapy 这样直接会报错. 第一步: 先安装wheel pip install wheel 第二 ...