zoukankan      html  css  js  c++  java
  • webpack4.0(02.本地服务和html-webpack-plugin插件)

    1.webpack的初始配置

    可以利用哈希来随随机生成生成名字不同的打包文件,以防止多次打包生成文件的覆盖
    
    let path = require('path')   // 相对路径变绝对路径
    
    module.exports = {
      mode: 'production', // 模式 默认 production development
      entry: './src/index',    // 入口
      output: {
        filename: 'bundle.[hash:8].js',   // hash: 8只显示8位
        path: path.resolve(__dirname, 'dist'),
        publicPath: ''  // // 给所有打包文件引入时加前缀,包括css,js,img,如果只想处理图片可以单独在url-loader配置中加publicPath
      }
    }
    

    2.开启本地服务

    webpack-dev-server主要是启动了一个使用express的Http服务器。它的作用主要是用来伺服资源文件。此外这个Http服务器和client使用了websocket通讯协议,原始文件作出改动后,webpack-dev-server会实时的编译,但是最后的编译的文件并没有输出到目标文件夹,而是在内存中。

    npm i webpack-dev-server -D
    
    devServer: {
      port: 3000,
      progress: true          // 滚动条
      contentBase: './build'  // 起服务的地址
      open: true              // 自动打开浏览器
      compress: true         // gzip压缩
    }
    
    之后可以在package.json中配置脚本,来快捷启动命令
    

    3.复制html

    上边我们需要手动引入打包后的js页面与html文件中,才可以看到效果,
    但其实我们可以配置插件,来完成打包后的自动引入如下:

    npm i html-webpack-plugin -D
    
    let HtmlWebpackPlugin = require('html-webpack-plugin')
    plugins: [ // 放着所有webpack插件
      new HtmlWebpackPlugin({ // 用于使用模板打包时生成index.html文件,并且在run dev时会将模板文件也打包到内存中
        template: './index.html', // 模板文件
        filename: 'index.html', // 打包后生成文件
        hash: true, // 添加hash值解决缓存问题
        minify: { // 对打包的html模板进行压缩
          removeAttributeQuotes: true, // 删除属性双引号
          collapseWhitespace: true // 折叠空行变成一行
        }
      })
    ]
    
  • 相关阅读:
    Android相对布局RelativeLayout常用到的属性
    用LinkedList模拟队列(Java容器)
    JAVA数组(一)
    SQL分页查询(转)
    asp.net 子窗体和父窗体交互
    Silverlight加载外部XAP包和页面
    As.net 动态反射程序集里面DLL并创建对象
    Silverlight LIstBox 实现横向排列元素 并且自动换行
    java jdbc 连接SQL数据库
    Silverlight Command的运用
  • 原文地址:https://www.cnblogs.com/jackson1/p/12702271.html
Copyright © 2011-2022 走看看