webpack与vite

webpack

  • 使用步骤:
    1. 初始化项目 pnpm init -y
    2. 安装依赖webpackwebpack-cli
    3. 在项目中创建src目录,然后编写代码(index.js
    4. 执行pnpm weboack来对代码进行打包(打包后观察dist文件夹)
  • 配置古文件(webpack.config.js)

const path = require("path")
module.exports = {
    mode: "production", // 设置打包的模式,production表示生产模式 development表示开发模式
    // entry: "./src/index.js", // 用来指定打包时的主文件,默认是./src/index.js
    output: { 
        // path: path.resolve(__dirname, 'dist'), // 指定的打包目录,必须绝对路径
        // filename: "main.js", // 打包后的文件名
        // clean: true, // 自动清理打包目录
    }, // 配置代码打包后的地址
    /*
        webpack默认情况下,只会处理js文件,如果我们希望它可以处理其他类型的文件,则需要引入loader
        
        - 以css为例:
            - 使用 css-loader可以处理js中的样式
            - 使用步骤:
                1. 安装:pnpm add css-loader -D
                2. 配置:
                module:{
                    rules: [
                        {
                            test: /\.css$/i,
                            use: "css-loader"
                        },
                    ]
                }
    */
    module:{
        rules: [
            { // css
                test: /\.css$/i,
                use: ["style-loader", "css-loader"]
            },
            { //图片
                test: /\.(png|svg|jpg|jpeg|gif)$/i,
                type: "asset/resource" //图片直接资源类型的数据,可以通过指定type来处理
            }
        ]
    }
}
  • 在编写js代码时,经常需要使用一些js中的新特性,而新特性在旧的浏览器中兼容性并不好。就导致我们无法使用一些新的特性。

  • 但是我们现在希望能够使用新的特性,我们可以采用一些折中的方案。依然使用新特性编写代码,但是代码编写完成时我们可以通过一些工具将新代码转换为旧代码。

  • babel就是这样一个工具,可以将新的js语法转换为旧的js,以提高代码的兼容性。

  • 我们如果希望在webpack支持babel,则需要向webpack中引入babel的loader

  • 使用步骤

      1. 安装 `npm install -D babel-loader @babel/core @babel/preset-env webpack`
      2. 配置:
    
module: {
  rules: [
    {
      test: /\.m?js$/,
      exclude: /(node_modules|bower_components)/,
      use: {
        loader: 'babel-loader',
        options: {
          presets: ['@babel/preset-env'],
        },
      },
    },
  ];
}
3. 在package.json中设置兼容列表
"browserslist": [
	"defaults"
]

  • 插件(plugin
    • 插件用来为webpack来扩展功能
    • html-webpack-plugin
      • 这个插件可以在打包代码后,自动在打包目录生成html页面
      • 使用步骤:
        1. 安装依赖 pnpm add -D html-webpack-plugin
        2. 使用:
// 引入html插件
const HTMLPlugin = require("html-webpack-plugin")
plugins: [
    new HTMLPlugin({
        // title: 'Hello Webpack' // html的title标题
        template: "./src/index.html"
    })
],
  • 配置源码的映射
devtool:"inline-source-map"

添加了以上代码之后,进入浏览器这里就能看见源代码,可在源代码上进入断点调试

在这里插入图片描述

Vite

  • Vite也是前端的构建工具

  • 相较于webpack,vite采用了不同的运行方式:

    • 开发时,并不对代码打包,而是直接采用ESM的方式来运行项目
    • 在项目部署时,在对项目进行打包
  • 除了速度外,vite使用起来也更加方便

  • 基本使用

    1. 安装vite

    2. vite的源码目录就是项目根目录

    3. 开发命令:

      vite 启动开发服务器

      vite build 打包

      vite preview 预览打包后代码

  • 使用命令创建

npm create vite@latest
yarn create vite
pnpm create vite
  • 配置文件: vite.config.js
  • 格式:
import { defineConfig } from 'vite'
import legacy from '@vitejs/plugin-legacy'

export default defineConfig({
    plugins: [
        legacy({
            targets: ["defaults", "ie 11"]
        })
    ]
})

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数智新重庆 | 推进信号升格 打造算力山城

2024年,是实现“十四五”规划目标任务的关键一年,高质量的5G网络、强大的AI能力作为新质生产力的重要组成部分,将有效赋能包括制造业在内的千行万业数字化化、智能化、绿色化转型升级,推动融合应用新业态、新模式蓬勃兴起&#xf…

字符函数与字符串函数(2)

遇见她如春水映莲花 字符函数与字符串函数(2) 前言一、strcatstrncat 二、strcmpstrncmp在这里插入图片描述 三、strstr四、strtok五、strerror总结 前言 根据上期字符函数与字符串函数我们可以了解到字符函数与个别字符串函数的用法, 那么接…

SQL注入less-1

一、启动SQL注入的靶场 1、启动phpstudy 注:phpstudy默认的php版本为7.x,想要成功的搭建靶场,需要把php版本改为5.x 2、输入127地址加文件名 进入此界面后点击setup就行 3、进入less-1的关卡 靶场搭建成功 二、查看less-1的代码 注&#…

什么?300TB SSD要来了?

SK海力士在韩国首尔的一场新闻发布会上宣布,其正在研发一款前所未有的300TB容量的固态硬盘(SSD)。这款硬盘的预告是该公司一系列旨在推动数据中心和设备端AI能力发展的产品与技术组合的一部分。SK海力士引用市场研究预测,全球在AI…

每日一题(力扣740):删除并获得点数--dp+思维

其实跟打家劫舍没啥区别 排序去重之后去考虑当前位置和前两个位置之间的关系即可&#xff0c;具体见代码&#xff1a; class Solution { public:int deleteAndEarn(vector<int>& nums) {int n nums.size();if (n 1) return nums[0];unordered_map<int, int>…

代码随想录算法训练营DAY51|C++动态规划Part12|1143.最长公共子序列、1035.不相交的线、53.最大子序列和

文章目录 1143.最长公共子序列思路CPP代码 1035.不相交的线53.最大子序列和思路CPP代码 1143.最长公共子序列 力扣题目链接 文章讲解&#xff1a;1143.最长公共子序列 视频讲解&#xff1a;动态规划子序列问题经典题目 | LeetCode&#xff1a;1143.最长公共子序列 本题其实就跟…

GPU虚拟化和算力隔离探讨

1. 术语介绍 术语 全称 说明 GPU Graphics Processing Unit 显卡 CUDA Compute Unified Device Architecture 英伟达2006年推出的计算API VT/VT-x/VT-d Intel Virtualization Technology -x表示x86 CPU&#xff0c;-d表示Device SVM AMD Secure Virtual Machine …

ASP.NET视频点播系统的设计与实现

摘 要 本文阐述了基于WEB的交互式视频点播系统的协议原理、软件结构和设计实现。本视频点播系统根据流媒体传输原理&#xff0c;在校园局域网的基础上模拟基于Web的视频点播系统&#xff0c;实现用户信息管理、视频文件的添加、删除、修改及在线播放和搜索功能。本系统是一个…

6.块元素和行内元素

块元素 无论内容多少&#xff0c;该元素独占一行(p、 h1-h6…) 例子如下图 行内元素 内容撑开宽度&#xff0c;左右都是行内元素的可以排在一排(a、 strong、 em …) 例子如下 感谢您的观看&#xff0c;能和您一起学习是我最大的荣幸&#xff01; 文章学习资料&#xff1a;…

【快速入门Linux】10_Linux命令—Vi编辑器

文章目录 一、vi 简介1.1 vi1.2 vim1.3查询软连接命令&#xff08;知道&#xff09; 二、打开和新建文件&#xff08;重点&#xff09;2.1 打开文件并且定位行2.2 异常处理 三、vi三种工作模式&#xff08;重点&#xff09;3.1 末行模式-命令 四、常用命令4.0 命令线路图4.1 移…

url对象---了解url的结构

什么是url url是网页网页的地址&#xff0c;通过一个url我们可以访问到网页&#xff0c;同时url也可以用来引用文件(txt,json,jpg,js,css,html)&#xff0c;所以你可以理解成url是一个指示器&#xff0c;它可以指向一个文件&#xff0c;网页&#xff0c;图片&#xff0c;或者音…

《网络安全技术 网络安全众测服务要求》

近日&#xff0c;全国网络安全标准化技术委员会发布《网络安全技术 网络安全众测服务要求》&#xff08;GB/T 43741-2024&#xff0c;以下简称“众测服务要求”&#xff09;&#xff0c;并将在2024年11月1日正式实施。 《众测服务要求》确立了网络安全众测服务的角色及其职责&…

【skill】移动云服务器80端口

上个月玩CentOS7&#xff0c;提到alist端口问题&#xff0c;https://www.bilibili.com/read/cv33662501/ 云服务器不能被外网访问的原因 1 云服务器没放行端口 2 防火墙没放行端口 3 配置了端口转发 4 浏览器不支持搭建的网页 5 端口被其他软件占用 移动10086云服务的80端口…

ubuntu ros noetic 编译 ORB_SLAM2 过程记录

1. 连接 eigen库 sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen 2. opencvx 修改 CMakeList.txt 中的 find_package open cv版本 修改 include/orbExtracter.h 文件为&#xff1a; //#include <opencv2/opencv.hpp> #include<opencv2/imgproc/imgpro…

用魔法打败魔法:用360解除chrome浏览器的360主页

面临的问题&#xff1a; 试了108种方法都是不好使的。 后来看到&#xff1a; https://blog.csdn.net/qq_30267617/article/details/120373704 的介绍&#xff0c;发现可以呀。 三个步骤 步骤1 单击“功能大全” 步骤2 单击“主页防护” 步骤3 在这里更改。

数组不为人知的一面,sizeof与strlen的区分

数组有另外一种表达方式&#xff0c;接下来我用代码的形式展现出来&#xff1a; sizeof 是一个操作符。 是用来计算变量&#xff08;类型&#xff09;所占内存空间大小&#xff0c;不关注内存中存放的具体内容。 单位是字节。 strlen 是一个库函数&#xff0c;是专门求字符…

【计算机毕业设计】基于SpringBoot+Vue智能停车计费系统设计与实现

目录 一、项目介绍 二、项目主要技术 三、系统功能结构设计 四、系统详细功能的实现 4.1 前台功能实现 4.2 管理员模块实现 4.3 用户后台模块实现 五、实现代码 一、项目介绍 该系统采用了java技术、SpringBoot 框架&#xff0c;连接MySQL数据库&#xff0c;具有较高…

深度学习之基于Vgg16卷积神经网络印度交警手势识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着智能交通系统的不断发展&#xff0c;手势识别技术在其中扮演着越来越重要的角色。特别是在印度等…

【研发日记】Matlab/Simulink避坑指南(十一)——Delay周期Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南(六)——字节分割Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(七)——数据溢出钳位Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指…

Redis高并发可用-主从复制,集群

Redis高并发可用 1 复制 默认情况下&#xff0c;Redis都是主节点。每个从节点只能有一个主节点&#xff0c;而主节点可以同时具有多个从节点。复制的数据流是单向的&#xff0c;只能由主节点复制到从节点。 1.1 复制的拓扑结构 一主一从&#xff1a; 主一从结构是最简单的…