基础篇(一):初识webpack的配置(手动搭脚手架、html-webpack-plugin、webpack-dev-server等)

目录

  • 一.开发前准备
  • 二.自定义webpack配置
    • 1.html-webpack-plugin自动引入资源
    • 2.清理dist
    • 3.mode环境
    • 4.source map
    • 5.watch mode
    • 6.webpack-dev-server

一.开发前准备

1.新建一个webpack-app文件夹,生成package.json文件

npm init -y

2.安装webpack

注意:建议安装webpack到当前项目,不要在全局,避免和小伙伴webpack版本不一致

npm install webpack webpack-cli --save-dev
// 检测版本
webpack -v

3.创建src文件夹、index.htmlwebpack.config.js文件

如图目录结构
在这里插入图片描述

二.自定义webpack配置

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')module.exports = {mode: 'development', // 环境entry: './src/index.js',output: {filename: 'bundle.js',path: path.resolve(__dirname, './dist'),clean: true, // 每次打包清理dist的文件assetModuleFilename: 'images/[contenthash][ext]' // 图片在dist打包里位置,优先级小于rules的generator},devtool: 'inline-source-map', // 浏览器console原来的位置module: {rules: [{test: /\.png$/,type: 'asset/resource', // 发送一个单独的文件并导出URL。之前通过使用 file-loader 实现generator: {filename: 'images/[contenthash][ext]'}},{text: /\.svg$/,type: 'asset/inline' // 导出一个资源的 data URI(base64)。之前通过使用 url-loader 实现},{text: /\.txt$/,type: 'asset/source' // 导出资源的源代码。之前通过使用 raw-loader 实现},{text: /\.jpg$/,type: 'asset', // 在导出一个 data URI 和发送一个单独的文件之间自动选择。之前通过使用 url-loader,并且配置资源体积限制实现parser: { // 解析器dataUrlCondition: {maxSize: 4 * 1024 * 1024 // 大于4M,dist生成资源文件,否则base64格式}}}]},plugins: [new HtmlWebpackPlugin({template: './index.html', // 打包前文件名filename: 'app.html', // 打包后文件名inject: 'body'  // 打包后js引入位置})],devServer: { // 热更新static: './dist',port: 8090,// open: true // 浏览器自动打开}
}

1.html-webpack-plugin自动引入资源

上面我们手动写了index.html加载dist/bundle.js,那如何自动生成app.html并引入打包资源呢?让该插件为我们生成一个 HTML 文件

npm install html-webpack-plugin -D

然后new实例化配置

2.清理dist

我们执行webpack后发现我们之前生成的一些文件还在,但事实上我们并不需要他们了,那我们该怎么在生成新的dist前清除掉旧的打包资源呢

在output中配置clean: true即可

3.mode环境

通过选择 development, productionnone 之中的一个,来设置 mode 参数,你可以启用 webpack 内置在相应环境下的优化。其默认值为 production

4.source map

source map能帮助我们在浏览器中调试时看到源码,以帮助我们精准的定位问题代码位置

配置devtool: 'inline-source-map’即可开启

5.watch mode

watch监听文件变化,当它们修改后会重新编译

webpack --watch

module.exports = {// ...watch: true,
};

6.webpack-dev-server

watch的唯一的缺点是,为了看到修改后的实际效果,我们需要刷新浏览器。我们使用这个插件实现热更新

npm install webpack-dev-server -D

配置devServer,看上面代码

module配置看下一篇


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部