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"
     })
    ]

posted on 2018-08-22 20:13  时光不染回忆不淡  阅读(384)  评论(0编辑  收藏  举报

导航