webpack01

news2025/1/4 6:29:47

webpack是一个前端工程化的打包工具

webpack在打包的时候,会形成一个依赖关系图,关联要打包的模块,,,不同的模块通过不同的loader去解析,,,比如解析css使用 css-loader,解析js使用babel

webpack的安装

webpack-cli : 是一个与webpack配套使用的工具,,提供了在命令行运行和配置webpack的能力,,比如可以配置webpack后面跟的参数 webpack --config webpack.config.js , webpack-cli负责解析命令行参数并将其传递给webpack核心。。。

所以在安装的时候也顺带将 webpack-cli带上,,当然 webpack-cli不是必须的

  • 全局安装。npm i webpack webpack-cli -g
  • 局部安全npm i webpack webpack-cli -D

直接运行webpack,,他会去当前目录下找src文件夹下面的index.js 作为入口文件,进行打包
直接运行webpack,,使用的是全局的webpack,,,,如果想使用项目里面安装的webpack,,
可以使用 npx webpack 或者 在package.json中的 script 中写 webpack, package.json 中执行的脚本会优先使用项目内的webpack,,而不会使用全局的webpack

npx: npm 的一个命令行工具,用于运行 Node.js 包。它的主要功能是让你能够不安装全局依赖的情况下,直接运行一个包。它会自动查找并执行本地或远程的包。

loader的使用:
  1. 直接在import的时候使用 loader。比如import "css-loader!../css/index.css"
  2. 通过启动脚本配置(已经废弃了)
  3. 配置文件配置(推荐)

css-loader : 解析css
style-loader: 创建一个style标签,将css。引入进去
less-loader : 这个loader回去调用less命令行。去将 less文件转换成 普通的css,,使用这个loader必须先安装npm i less, 这个less-loader只是去调用这个命令,,而真正将less变成css的是 less这个包自己

webpack配置
  • 出口文件,不能是相对路径,必须是绝对路径,,,path.resolve(__dirname)获取当前文件所在路径
    path.resolve(__dirname,"./build)

  • loader的顺序: 后面的loader先使用,,style-loader 需要写在 css-loader前面,,


// commonJS 的方式读取的,,, commonJS的方式导出
const path = require("path");
module.exports = {
    entry:"./src/main.js",
    output:{
        filename:"bundle.js", // 输出的文件名字
        path: path.resolve(__dirname,"./build")  // 出口只能是绝对路径    path.resolve(__dirname) : 当前文件的绝对路径
    },
    module:{
        rules:[ // 配置loader
            { // Rule对象
                test:/\.css$/,// 匹配资源  ===> 匹配到的资源,,用下面的loader处理  ===> 正则表达式
                use:[// 先用后面的loader处理,,再用前面的loader
                    {
                        loader: "style-loader"
                    },
                    {
                        loader:"css-loader", // 设置loader
                        options:{}  // 这里配置的值会被传入loader中
                    },

                ] , // [useEntry] ===> useEntry是一个对象
                /**
                 * use:["css-loader"] 最终会被转换为 ===》  use:[{loader:"css-loader}]
                 */

                // loader:"css-loader"  ===> 只有一个loader可以这样写,,也是  【useEntry】 的简写

                /**
                 * less的代码  ===》  css
                 *   less-loader : 只不过是一个处理而已,而对less代码作编译的,是一个独立的工具,跟webpack没有任何关系
                 *
                 *   lessc   ===>  对less文件进行编译,转成css
                 *
                 *   less-loader 也是使用 less这个工具,,将less文件转成css
                 *
                 *
                 */

            }
            ,
            {
                test: /.less$/,
                use:[
                    "style-loader",
                    "css-loader",
                    {
                        loader: "less-loader" // 会自动进行less的使用
                    }
                ]
            }
        ]
    }


}

browserlist

browserlist : 就是展示这些浏览器市场占用的工具,,把这些共享的信息,,给 autoprefixer :不同浏览器给css加的前缀不同,, babel :解释为低级js,,, postcss-preset-env等转换工具。。。让他们共享这些浏览器,并处理这些浏览器的兼容问题

js和css,在不同的浏览器中,兼容性不同,,随着前端工程化的发展,,这些处理各个浏览器兼容的问题,不用人为去处理,,而是通过打包,,去适配各个浏览器的兼容,,,
npx browserslist ">1%,last 2 version,not dead"
逗号, 表示并集。and 表示交集,not表示取反,,, >1%表示 在caniuse.com根据这个网站统计的浏览器使用占比大于百分之一的浏览器。last 2 version :表示每一种浏览器最近的两个版本。。。no dead:表示一年内没有停止维护的浏览器,,
npx browserlist. 会例出这些浏览器,,webpack在打包的时候进行兼容处理

  • package.json中可以配置默认的browserlist:
{
  "name": "webpack01",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --config wk.config.js"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "css-loader": "^7.1.2",
    "less": "^4.2.1",
    "less-loader": "^12.2.0",
    "style-loader": "^4.0.0",
    "webpack": "^5.97.1",
    "webpack-cli": "^6.0.1"
  },
  "browserslist": [
    ">1%",
    "last 2 version",
    "not dead"
  ]
}

  • 也可以创建一个 browserslistrc文件里面配置这些,需要处理兼容的浏览器信息:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2269024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

牛客网最新1129道 Java 面试题及答案整理

前言 面试,跳槽,每天都在发生,而对程序员来说"金三银四"更是面试和跳槽的高峰期,跳槽,更是很常见的,对于每个人来说,跳槽的意义也各不相同,可能是一个人更向往一个更大的…

python版本的Selenium的下载及chrome环境搭建和简单使用

针对Python版本的Selenium下载及Chrome环境搭建和使用,以下将详细阐述具体步骤: 一、Python版本的Selenium下载 安装Python环境: 确保系统上已经安装了Python 3.8及以上版本。可以从[Python官方网站]下载并安装最新版本的Python,…

突破管理困局,驾驭变革浪潮

在瞬息万变的商业环境中,变革已成为企业生存和发展的必经之路。许多企业在面对激烈竞争、技术进步和市场变化时,都会选择或被迫进行各种形式的变革。本文将深入探讨变革管理的重要性,介绍常见的变革模型,并提供实用的策略和建议&a…

WPF编程excel表格操作

WPF编程excel表格操作 摘要NPOI安装封装代码测试代码 摘要 Excel操作几种方式 使用开源库NPOI(常用,操作丰富)使用Microsoft.Office.Interop.Excel COM组件(兼容性问题)使用OpenXml(效率高)使用OleDb(过时) NPOI安装 封装代码 using System; using System.IO; u…

【论文阅读笔记】SCI算法与代码 | 低照度图像增强 | 2022.4.21

目录 一 SCI 1 SCI网络结构 核心代码(model.py) 2 SCI损失函数 核心代码(loss.py) 3 实验 二 SCI效果 1 下载代码 2 运行 一 SCI 💜论文题目:Toward Fast, Flexible, and Robust Low-Light Image …

wps透视数据表

1、操作 首先选中你要的行字段表格 -> 插入 -> 透视数据表 -> 拖动行值(部门)到下方,拖动值(包裹数量、运费)到下方 2、删除 选中整个透视数据表 -> delete 如图:

STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计

SMEC88ST SDK开发包下载 目前市场上很多嵌入式产品方案都是可以破解复制的,主要是因为方案主芯片不具备防破解的功能,这就导致开发者投入大量精力、财力开发的新产品一上市就被别人复制,到市场上的只能以价格竞争,最后工厂复制的产…

【电路理论四】正弦电流电路

正弦电流 正弦量是随时间按正弦规律变动的电路变量。 随时间按正弦规律变动的电流称为正弦电流。 正弦电流的瞬时值表达式: 称为正弦电流的三要素。 分别为振幅/幅值,角频率,初相。 幅值为正弦电流的最大值,恒为正。 为正弦电…

多模态论文笔记——Coca(副)

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍多模态模型Coca,在DALLE 3中使用其作为captioner基准模型的原因和优势。 文章目录 ALBEF论文模型结构组成训练目标 CoCa​论文模型结构CoCa…

【Python系列】处理空请求体Body

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【毕业设计选题】目标检测方向毕业设计选题推荐 2025

目录 前言 毕设选题 开题指导建议 更多精选选题 选题帮助 最后 前言 大家好,这里是海浪学长毕设专题! 大四是整个大学期间最忙碌的时光,一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整…

从2024看2025前端发展趋势

前言 又至年关,回顾整个2024年,前端行业仍旧百废待兴,IT业界同样也未见有所起色,AI风潮也从狂热兴奋逐步走向了冷静稳定阶段,造成此形势感观并非单一行业或者某一企业之特例,实为政经等综合影响之结果。因…

QT----------常用界面组件的使用

一、QComboBox 类 主要功能&#xff1a;提供一个下拉列表&#xff0c;用户可以从中选择一个或多个选项。 #include <QApplication> #include <QComboBox> #include <QVBoxLayout> #include <QWidget> #include <QMessageBox>int main(int argc…

AIDD -人工智能药物设计- DrugChat:多模态大语言模型实现药物机制与属性的全方位预测

DrugChat&#xff1a;多模态大语言模型实现药物机制与属性的全方位预测 今天为大家介绍的是来自加州大学圣地亚哥分校谢澎涛团队的一篇论文。准确预测潜在药物分子的作用机制和性质对于推进药物发现至关重要。然而&#xff0c;传统方法通常需要为每个特定的预测任务开发专门的…

智能化人才招聘系统是怎样的?

随着企业规模的扩大和业务范围的拓展&#xff0c;人才招聘成为了企业发展的关键环节。然而&#xff0c;市面上的人才招聘系统琳琅满目&#xff0c;质量参差不齐&#xff0c;许多企业发现&#xff0c;并非所有系统都能满足他们的需求&#xff0c;特别是智能化的需求。今天&#…

分布式专题(9)之Mysql高可用方案

一、分库分表概念 数据库&#xff0c;应该是一个应用当中最为核心的价值所在&#xff0c;也是开发过程中必须熟练掌握的工具。之前我们就学习过很多对MySQL的调优。但是随着现在互联网应用越来越大&#xff0c;数据库会频繁的成为整个应用的性能瓶颈。我们经常使用的MySQL数据库…

LockSupport的源码实现原理(一)

目录 底层源码分析 线程状态变化 许可证机制 中断处理 底层源码分析 public class LockSupport {// Unsafe实例private static final Unsafe U Unsafe.getUnsafe();// Thread对象中parkBlocker字段的偏移量private static final long PARKBLOCKER U.objectFieldOffset(Thre…

CannotRetrieveUpdates alert in disconnected OCP 4 cluster解决

环境&#xff1a; Red Hat OpenShift Container Platform (RHOCP) 4 问题&#xff1a; Cluster Version Operator 不断发送警报&#xff0c;表示在受限网络/断开连接的 OCP 4 集群中无法接收更新。 在隔离的 OpenShift 4 集群中看到 CannotRetrieveUpdates 警报&#xff1a; …

智能家居体验大变革 博联 AI 方案让智能不再繁琐

1. 全球AI技术发展背景及智能家居市场趋势 人工智能&#xff08;AI&#xff09;技术的飞速发展正在推动全球各行业的数字化转型。国际电信联盟与德勤联合发布《人工智能向善影响》报告指出&#xff0c;全球94%的商界领袖认为&#xff0c;人工智能技术对于其企业在未来5年内的发…

logback日志框架源码分析

目录 (一)入口:slf4j选择日志框架 (二)日志框架初始化 (1)logback的3种配置方式 a、BasicConfigurator默认配置 b、SPI方式配置的Configurator实现类 c、通过配置文件初始化 (2)xml配置文件初始化 (三)Logger的创建 (四)打印日志 本文源码基于:logback版…