webpack 复制html,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 // 折叠空行变成一行

}

})

]

原文:https://www.cnblogs.com/jackson1/p/12702271.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值