webpack3基础总结
## 1. 什么是webpack?
  + 前端人员的打包、压缩、测试的多方位为一体的工具。
## 2. 安装webpack  现在4.0版本以上的和3.几的版本不一样
  + cnpm i webpack@3.5.6 -g
  + webpack a.js b.js 会生成一个b.js
  + css 引入的需要转化
  + npm install style-loader css-loader
## 3. webpack.config.js 文件配置
	  module.exports = {
		    entry: "./js/a.js",	// 入口文件
		    output: {
			    filename: "./js/b.js"	// 输出文件
		    },
		    devtool: "source-map",		// webpack 本身是没有js代码的需要配置
		    module: {
			      loader: [{
				        test: "\.css$/",
				        loader: 'style-loader!css-loader'	//规则
			      }]
		    }
	  }
  + webpack -p  压缩
  + webpack -w  观察中--自动更新--需要刷新
  + webpack -d  调试模块 -- webpack 本身是没有js代码的需要配置
  + webpack -progress 告诉你每步在做什么
+ webpack -pwd 可以组合使用
## 4. 可以更改webpack.config.js的名称
  + webpack --config fly.js(自定义的名字)
  + webpack --config fly.js -dw // 还是可以组合使用的
## 5. 主页面也可以引用es6的
  + index.js -- import c from "./c.js"
	  ++ `${c.a}+${c.b}`
  + c.js export default {
	    a: "10",
	    b: "20",
	    c: {}
   }
## 6. 热更新不用刷新了
  + npm install webpack-dev-server -g
	  + 方法一: webpack-dev-server --port 1207   // 配合webpack.config.js
	  + 方法二: 	 module.exports = {
					        entry: "./js/a.js",	// 入口文件
					        output: {
						          filename: "./js/b.js"	// 输出文件
					        },
					        devtool: "source-map",		// webpack 本身是没有js代码的需要配置
					        devServer: {
						          port: 1207 // 配置热更新
					        },
					        module: {
						          loader: [{
							          test: "\.css$/",
							          loader: 'style-loader!css-loader'	//规则
						        }]
					         }
				      }
				      运行要用 webpack-dev-server 
	+ 方法三:在package.json里面更改
			      "scripts": {
			          "dev": "webpack-dev-server"
			      }
		    运行命令: npm run dev
## 7. 图片引入
  + css中引入图片,背景图片,通过入口文件引入
     - cnpm i url-loader   // 图片和字体一般使用
     - webpack.config.js中配置:
		    loader: [{
			      test: "\.css$/",
			      loader: 'style-loader!css-loader'	//规则
		      },{
			      test: "\.(jpg|jpeg|gif|png)$/i",	// 忽略大小写
			      loader: 'url-loader?limit=4096&name=image/[hash:10].[ext]'	//最大4M,10位哈希,最高32位
			      loader: 'url-loader?limit=4096&name=image/[name].[ext]'	// 不使用哈希值,直接以自己名称命名
		      }]
  + html中直接引入图片 不能使用iamge中的图片
	    - cnpm i html-withimg-loader
	    - webpack.config.js中配置
		      loader: [{
			        test: "\.html$/",
			        loader: 'html-with-img-loader'	//规则
		      }]
	    - 重新对html赋值,在入口文件进行修改
		    var html = require("./html");
		    document.body.innerHtml = html;
    + 中文网: www.css88.com/doc/webpack2/loaders/url-loader
## 8. 插件 plugins
  + cnpm i webpack 
  + 在webpack.config.js中
	    - var webpack = require("webpack");
	    - plugins: [
		      new webpack.BannerPlugin("this is 表头注释"), //压缩的头注释,作者
	    ]
  + 压缩html
	    - cnpm i html-webpack-plugin
	    - 在webpack.config.js中配置
	  	     var htmlWebpackPlugin = require("html-webpack-plugin");
	  	     plugins: [
	  	 	      new htmlWebpackPlugin({
	  	 		      'template': "./index.html",
	  	 		      'filename':"./index.mim.html" // 在html中可以不用引用b
	  	 	      })
	  	     ]
	    - webpack-dev-server/webpack 都可以
## 9. webpack结合bootstrap使用
  + 下载模板
	    - cnpm i style-loader css-loader html-withimg-loader webpack url-loader
  + 会有图标、字体的报错
	    - webpack.config.js  css引入
	    - cnpm i file-loader
	    - loader: [{
		      test: "/\.(svg|ttf|woff|woff2)$/i",
		      loader: "url-loader?limit=4096&name=fonts/[hash:10].[ext]"
	      },{
		      test: "/\.eot$/i",
		      loader: "file-loader"
	      }]]
  + jquery 引入 全局的
	    - cnpm i jquery 
	    - plugins: [
		      new webpack.ProvidePlugin({
			      $: "jquery",
			      jQuery: "jquery"
		     })
	    ]
                    
                
                
            
        
浙公网安备 33010602011771号