webpack学习笔记-6-webpack-dev-server
来源:互联网 发布:windows恶意删除工具 编辑:程序博客网 时间:2024/05/11 05:30
1.背景
webpack可以自动化完成从开发环境到生产环境的一系列复杂的操作。但是当我们调试项目时,如果每次更新都要跑一下webpack,就会显得很麻烦。
webpack提供了开发环境调试工具——webpack-dev-server,通过这个工具,可以建立本地服务器,它会监测我们的文件改动,当文件被修改时,它会自动执行打包流程,然后自动刷新页面。你可能会觉得,如果每次改动都重新打包,那岂不是会很慢?webpack并不是真的完整地执行打包过程然后把文件输出到你指定的目录下,而是会把打包完的文件放在内存中。当文件改动时,内存中的打包文件就会更新。这样,我们引入的应该是这个内存中的文件。而不是我们自己定义的目录中的输出文件。怎么引入这个内存中的文件呢?这个内存中的文件是和你的入口html文件同目录的。因此在我们的demo中,把index.html引入的js和css文件目录都要改成相对当前目录。这样,我们在调试的时候,需要改动index.html的引用路径,然后调试完再改回来,然后再执行一下打包(因为调试的时候webpack-dev-server并未改动你的真实文件)。如果你觉得这样比较麻烦,还有另一种方式:复制index.html到你的输出目录,然后改动引入js和css文件为相对当前路径。然后执行webpack-dev-server时指定输出目录(默认是根目录)。这样server会加载index.html,然后调试完准备发布时,只需要将输出目录中的index.html删掉,再执行一遍打包过程就可以了。
如果index.html文件可以自动生成那就更方便了,html-webpack-plugin插件为我们提供了这个功能。使用这个插件可以自动在输出目录生成一个html文件(默认名字index.html,也可通过filename参数自定义)
// webpack.config.js
var ExtractTextPlugin = require('extract-text-webpack-plugin');var HtmlPlugin = require('html-webpack-plugin');var extractCss = new ExtractTextPlugin('[name]-one.css');var extractLess = new ExtractTextPlugin('[name]-two.css');module.exports = { // 入口文件路径,__dirname是根目录 entry: __dirname + '/src/main.js', // 打包生成文件 output: { path: __dirname + '/output', filename: 'main.js' }, module: { rules: [ { test: /\.css/, use: extractCss.extract({ fallback: 'style-loader', use: [ 'css-loader', 'autoprefixer-loader' ] }) }, { test: /\.less$/, use: extractLess.extract({ fallback: 'style-loader', use: [ 'css-loader', 'autoprefixer-loader', 'less-loader' ] }) }, { test: /\.jpeg$/, // use: 'url-loader?limit=1024&name=[path][name].[ext]&publicPath=output/', use: 'url-loader?limit=1024&name=[path][name].[ext]&outputPath=img/&publicPath=./', }, ] }, plugins: [ new HtmlPlugin(), extractCss, extractLess ]}这个自动生成的html文件会自动包含你的打包js和样式文件。这样,我们直接使用webpack-dev-server就可以了。
2.安装
npm install webpack-dev-server -g值得注意的是,若你的webpack版本和webpack-dev-server要求的不符,会出现webpack-dev-server安装报错,你可以根据报错内容重新安装指定版本的webpack。比如我的报错提示我需要2.2.0的版本。
// 先卸载webpacknpm uninstall webpack// 安装2.2.0版本的webpacknpm install webpack@2.2.0
3.webpack-dev-server
参考文档:http://www.cnblogs.com/pingfan1990/p/5100147.html
使用webpack-dev-server有两种调试方法:iframe和inline,这两种方式输入的命令和访问的地址不同
iframe方式:
命令:webpack-dev-server [--content-base output/](后面的参数表示入口html文件的目录,如果index.html在根目录,则不需要加后面的那个参数,因为默认就是根目录)
访问链接:http://localhost:8080/webpack-dev-server/index.html
inline方式:
命令:webpack-dev-server --inline
访问链接:http://localhost:8080/index.html
4.demo
地址:https://github.com/KIDFUCKER/calculator1.git
分支: v8-webpack-dev-server
- webpack学习笔记-6-webpack-dev-server
- webpack笔记----webpack-dev-server服务
- webpack-dev-server
- webpack-dev-server使用方法
- WEBPACK DEV SERVER
- webpack-dev-server使用方法
- webpack-dev-server 使用方法
- webpack-dev-server 详解
- webpack-dev-server整合
- webpack-dev-server
- webpack-dev-server
- webpack开发工具webpack-dev-server使用指南
- webpack-dev-server 摘自webpack官网
- webpack-dev-server简单使用
- webpack-dev-server的使用
- webpack-dev-server的使用
- webpack-dev-server自动更新页面
- webpack-dev-server 使用 hash
- oracle 连接查询,子查询,分组函数
- IDEA maven项目创建Web时 JSP如何使用标签
- 数据库开发---SQL语句总结(1)
- MapReduce练习一(计数,去重,排序,平均成绩)
- Java线程池并发执行多个任务
- webpack学习笔记-6-webpack-dev-server
- gcc和g++的区别
- 面试总结2
- socket 中 TCP 和 UDP 编码流程
- centos 忘记密码解决方法
- Ubuntu 16.04解决TL-WN826N的驱动问题
- Golang学习笔记 结构体和指针
- PopupWindow在Android7.0后不能显示到指定位置
- 降薪求职,你是不是傻呀?