当前位置: 首页 > news >正文

前端开发工程师——webpack

一.环境准备

npm init -y

npm i webpack webpack-cli -D

打包命令

npx webpack ./src/main.js --mode=development
//development开发模式
//production生产模式

npx webpack 

直接运行就行

二.加载器loader

在less/stylus/css/sass/images中添加适当的样式

例如:sass

.box3width: 100pxheight: 100pxbackground-color: hotpink
.box4 {width: 100px;height: 100px;background-color: black;
}

main.js

import count from "./js/count"
import sum from "./js/sum"
// 要打包就必须引入css
import "./css/index.css"
// 引入less
import "./less/index.less"
// 引入sass
import "./sass/index.sass"
import "./sass/index.scss"// 引入styl
import "./stylus/index.styl"console.log(count(2,1));
console.log(sum(1,2,3,4));

webpack. config.js配置文件

const path = require("path");//node.jsmodule.exports = {// 入口entry: "./src/main.js",//相对路径// 输出output: {// path文件的输出路径,是绝对路径//__dirname表示当前文件的文件夹path: path.resolve(__dirname, "dist"),// 文件名filename: "main.js",},// 加载器module: {rules: [//loader的配置// 处理css加载器{test: /\.css$/,use: ['style-loader', 'css-loader']},// 安装less和less-loader// npm install less less-loader --save-dev{test: /\.less$/,use: ["style-loader","css-loader","less-loader"],},// 安装sass-loader// npm install sass-loader sass webpack --save-dev{test: /\.s[ac]ss$/i,use: ["style-loader","css-loader","sass-loader"],},// 处理styl资源//npm i stylus-loader -D{test: /\.styl$/,use: ["style-loader","css-loader","stylus-loader"],},// 处理图片资源{test: /\.(png|jpe?g|gif|webp|svg)$/,type: "asset",parser: {dataUrlCondition: {// 小于10kb的图片转base64,优点:减少请求数量maxSize: 10 * 1024,},}},]},// 插件plugins: [//plugins的配置],// 模式mode: "development",
};

三.修改输出文件目录

在webpack. config.js配置文件

// 输出output: {// path文件的输出路径,是绝对路径//__dirname表示当前文件的文件夹path: path.resolve(__dirname, "dist"),// 入口文件打包输出的文件名filename: "static/js/main.js",// 自动清除上次打包的内容clean: true,},
// 处理图片资源{test: /\.(png|jpe?g|gif|webp|svg)$/,type: "asset",parser: {dataUrlCondition: {// 小于10kb的图片转base64,优点:减少请求数量maxSize: 10 * 1024,},},generator: {// 输出图片的名称// hash:10表示hash取前10位filename: "static/images/[hash:10][ext][query]",}},

四.处理图标资源

 // 处理图标{test: /\.(ttf|woff2?)$/,type: "asset",parser: {dataUrlCondition: {// 小于10kb的图标转base64maxSize: 10 * 1024,},},generator: {// 输出图标的名称// hash:10表示hash取前10位filename: "static/media/[hash:10][ext][query]",}},

五.eslint基本使用

配置文件

const ESLintPlugin = require('eslint-webpack-plugin');
plugins: [//plugins的配置
// npm install eslint-webpack-plugin --save-devnew ESLintPlugin({// 检测那些文件context: path.resolve(__dirname,"src"),}),],

同级src,下面是文件内容

module.exports = {// 继承Eslint规则extends:["eslint:recommended"],env: {node: true,//启用node中的全局变量browser:true,//启用浏览器中的全局变量},parserOptions: {ecmaVersion: 6,sourceType: "module",},rules: {"no-var":2,//不能使用var定义变量}
}


六.babel基础用法

配置文件

下载babel

npm install -D babel-loader @babel/core @babel/preset-env

{test:/\.js$/,exclude:/node_modules/,use: {loader:"babel-loader",// options: {//     presets:["@babel/preset-env"],// },},},

babel.config.js文件

module.exports = {// 智能预设,能够编译es6语法presets:["@babel/preset-env"],
}

七.处理html资源

下载安装

npm install --save-dev html-webpack-plugin

配置文件引入

const HtmlWebpackPlugin = require('html-webpack-plugin');plugins: [//plugins的配置// npm install eslint-webpack-plugin --save-devnew ESLintPlugin({// 检测那些文件context: path.resolve(__dirname,"src"),}),new HtmlWebpackPlugin({// 模板:以public/index.html文件创建新的html文件// 新的html文件特点:1.结构和原来一样,自动引入打包输出的结果template: path.resolve(__dirname,"public/index.html"),})],

开发服务器 

npm install webpack-dev-server --save-dev

// 开发服务器devServer: {host: "localhost",//启动服务器域名port:3000,//启动服务器端口号open:true,//是否自动打开浏览器},

八.webpack高级 

SourceMap

表示可以把错误类型的代码映射出来

HMR (减少时间)

main.js

oneOf(提高打包速度)

include/exclude

 

多进程打包 

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • HOOK定义
  • 力扣爆刷第144天之二叉树四连刷(完结二叉搜索树改变树结构)
  • VS2022 嘿嘿
  • 【C++】二叉树进阶(二叉搜索树)
  • 【Java面试】二、Redis篇(中)
  • VMware ESXi 7.0U3q macOS Unlocker OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版)
  • Elasticsearch开启安全认证
  • Helm安装kafka3.7.0无持久化(KRaft 模式集群)
  • FTP协议——BFTPD基本操作(Ubuntu+Win)
  • PHP之fastadmin系统配置分组增加配置和使用
  • 【java】常见面试题目
  • Modular military character
  • 全球AI新闻速递527
  • nginx代理前端html
  • 【Docker实战】进入四大数据库的命令行模式
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Android框架之Volley
  • JavaScript 奇技淫巧
  • Js基础知识(四) - js运行原理与机制
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • SQLServer之索引简介
  • 浅谈web中前端模板引擎的使用
  • 事件委托的小应用
  • 小李飞刀:SQL题目刷起来!
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # 计算机视觉入门
  • #APPINVENTOR学习记录
  • #NOIP 2014# day.2 T2 寻找道路
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (6)设计一个TimeMap
  • (poj1.2.1)1970(筛选法模拟)
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (八)Spring源码解析:Spring MVC
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (离散数学)逻辑连接词
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)JAVA中的堆栈
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .Net Winform开发笔记(一)
  • .net 微服务 服务保护 自动重试 Polly
  • .net 无限分类
  • .NET运行机制
  • @Async注解的坑,小心
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)