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

vue更高效的工具-vite

目录

         1.webpack

2.vite是什么

3.使用vite创建项目

4.最后总结


🐼webpack

简单来说,Webpack是一个打包工具。

站在2018年的角度,成为一个优秀的前端工程师,除了要会写页面样式和动态效果之外,还需要会用主流的单页面框架、Node.js、简单的前端的性能优化等等。加上现在一部分服务器的逻辑移到了前端上,所以实际上前端的复杂度也是提升了很多。

而Webpack可以帮助我们完成一些任务。比如js压缩、css压缩、编译模板文件等等,从而减少前端的工作量。当然,Webpack功能很强大,能帮我们完成的工作远远不止这些。

下面,让我们慢慢了解Webpack吧~

二、安装

① Webpack的运行需要依赖Node.js,因此需要先安装Node.js。

中文网下载地址:下载 | Node.js 中文网

安装完成之后在命令行窗口输入下面两行命令,若有出现版本号则安装成功。

$ node -v
$ npm -v

② 接着就可以通过npm(一个基于Node.js的包管理工具)来安装Webpack咯~

首先,通过下面的一行命令先生成package.json

$ npm init

③ 接着就能通过npm完成webpack的安装啦

因为npm的源在国外,所以安装速度可能比较慢。建议大家可以用淘宝的npm镜像。但是要注意的一点是,淘宝npm镜像中有一些包会不太一样(一般来说不影响使用)

淘宝 NPM 官网:淘宝 NPM 镜像

通过下面这行代码即可完成cnpm的配置

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

通过下面两行代码即可完成webpack的安装

// 要是不想使用淘宝的npm镜像,就用npm代替cnpm
$ cnpm install -D webpack
$ cnpm install -D webpack-cli

④ 安装完之后在package.json同级目录新建一个webpack.config.js文件。然后再在package.json中增加一个“scripts”配置项。

// 这是package.json
{"name": "zhihu_demo","version": "1.0.0","description": "","main": "index.js","scripts": {"build": "webpack --config webpack.config.js"},"repository": {"type": "git","url": "git+https://github.com/rehellinen/zhihu_demo.git"},"author": "","license": "ISC"
}

接着在命令行中输入下面的这行代码就可以启动webpack啦。

$ npm run build

但是,因为我们的webpack.config.js是空的,因此运行时会报错。具体配置会在下一节课开始讲。

三、一些必要的解释

到这里为止,大家可能会有几个问题。

Q1:命令行窗口怎么打开?

A1:windows系统在左下角的搜索框输入cmd即可

Q2:package.json中的scripts有什么用?

A2:如上面的实例,当我们输入“npm run build”就相当于是通过npm脚本执行了“webpack --config webpack.config.js”。

那为什么我们不直接在命令行中输入后面的那行代码呢?因为上面的实例代码中,webpack是局部安装的,因此在环境变量中不能找到webpack,直接输入那行代码会提示找不到webpack。

那为什么npm的script就能运行呢?我们通过npm安装的包都会放在node_modules的目录中,而这个目录中有一个叫.bin的子目录,在这个目录中放置有webpack的可执行文件。npm的script默认会去.bin中寻找,因此能够运行。

这个问题也能通过全局安装解决,-g表示全局安装。

$ cnpm install -g webpack 
$ cnpm install -g webpack-cli

Q3:为什么推荐使用局部安装?

A3:我们写完的代码可能会给其他人用,而我们不能保证其他人也全局安装了webpack,因此局部安装webpack比较保险。

🐼vite是什么

Vite由两个主要部分组成:

  1. dev server:利用浏览器的ESM能力来提供源文件,具有丰富的内置功能并具有高效的HMR
  2. 生产构建:生产环境利用Rollup来构建代码,提供指令用来优化构建过程

Vite作为一个基于浏览器原生ESM的构建工具,它省略了开发环境的打包过程,利用浏览器去解析imports,在服务端按需编译返回。同时,在开发环境拥有速度快到惊人的模块热更新,且热更新的速度不会随着模块增多而变慢。因此,使用Vite进行开发,至少会比Webpack快10倍左右。

1.2 、Vite的主要特性

  • Instant Server Start —— 即时服务启动
  • Lightning Fast HMR —— 闪电般快速的热更新
  • Rich Features —— 丰富的功能
  • Optimized Build —— 经过优化的构建
  • Universal Plugin Interface —— 通用的Plugin接口
  • Fully Typed APIs —— 类型齐全的API

1.3、 主流构建工具对比

构建工具指能自动对代码执行检验、转换、压缩等功能的工具。常见功能包括:代码转换、代码打包、代码压缩、HMR、代码检验。构建工具也随着前端技术的发展,从Browserify、Gulp到Parcel,从Webpack到Rollup,一直到最近比较火的面向非打包的Snowpack和Vite。

Browserify

  • 预编译模块化方案(文件打包工具)
  • Browserify基于流方式干净灵活
  • 遵循commonJS规范打包JS
  • 可引入插件打包CSS等其他资源(非原生能力)

Gulp

  • 基于流的自动化构建工具(工程化)
  • 配置复杂度高,偏向编程式,需要定义task处理构建
  • 支持监听读写文件
  • 可搭配Browserify等模块化工具来使用

Parcel

  • 极速打包(工程化:极速0配置)
  • 零配置,但造成了配置不灵活,内置常见场景的构建方案及其依赖,无需再次安装(babel等)
  • 以html入口,自动检测和打包依赖
  • 不支持SourceMap
  • 无法Tree-shaking

Webpack

  • 预编译模块化方案(工程化:大而全)
  • 通过配置文件达到一站式配置
  • loader进行资源转换,功能全面(css+js+icon+front)
  • 插件丰富,灵活扩展
  • 社群庞大
  • 大型项目构建慢

Rollup

  • 基于ES6打包(模块打包工具)
  • Tree-shaking
  • 打包文件小且干净,执行效率更高
  • 更专注于JS打包

Snowpack

  • 基于ESM运行时编译(工程化:ESM运行时)
  • 无需递归循环依赖组装依赖树
  • 默认输出单独的构建模块(未打包),可选择不同打包器(webpack、rollup等)

Vite

  • 基于ESM运行时打包
  • 借鉴了Snowpack
  • 生产环境使用Rollup,集成度更高,相比Snowpack支持多页面、库模式、动态导入自动polyfill等

 🐼使用vite创建项目

使用 NPM:

$ npm init vite@latest

使用 Yarn:

$ yarn create vite

使用 PNPM:

$ pnpm create vite

然后按照提示操作即可!

你还可以通过附加的命令行选项直接指定项目名称和你想要使用的模板。例如,要构建一个 Vite + Vue 项目,运行:

# npm 6.x
npm init vite@latest my-vue-app --template vue# npm 7+, 需要额外的双横线:
npm init vite@latest my-vue-app -- --template vue# yarn
yarn create vite my-vue-app --template vue# pnpm
pnpm create vite my-vue-app -- --template vue

查看 create-vite 以获取每个模板的更多细节:vanillavanilla-tsvuevue-tsreactreact-tspreactpreact-tslitlit-tssveltesvelte-ts

社区模板#

create-vite 是一个快速生成主流框架基础模板的工具。查看 Awesome Vite 仓库的 社区维护模板,里面包含各种工具和不同框架的模板。你可以用如 degit 之类的工具,使用社区模版来搭建项目。

npx degit user/project my-project
cd my-projectnpm install
npm run dev

如果该项目使用 main 作为默认分支, 需要在项目名后添加 #main

npx degit user/project#main my-project

index.html 与项目根目录#

你可能已经注意到,在一个 Vite 项目中,index.html 在项目最外层而不是在 public 文件夹内。这是有意而为之的:在开发期间 Vite 是一个服务器,而 index.html 是该 Vite 项目的入口文件。

Vite 将 index.html 视为源码和模块图的一部分。Vite 解析 <script type="module" src="..."> ,这个标签指向你的 JavaScript 源码。甚至内联引入 JavaScript 的 <script type="module"> 和引用 CSS 的 <link href> 也能利用 Vite 特有的功能被解析。另外,index.html 中的 URL 将被自动转换,因此不再需要 %PUBLIC_URL% 占位符了。

与静态 HTTP 服务器类似,Vite 也有 “根目录” 的概念,即服务文件的位置,在接下来的文档中你将看到它会以 <root> 代称。源码中的绝对 URL 路径将以项目的 “根” 作为基础来解析,因此你可以像在普通的静态文件服务器上一样编写代码(并且功能更强大!)。Vite 还能够处理依赖关系,解析处于根目录外的文件位置,这使得它即使在基于 monorepo 的方案中也十分有用。

Vite 也支持多个 .html 作入口点的 多页面应用模式。

指定替代根目录#

vite 以当前工作目录作为根目录启动开发服务器。你也可以通过 vite serve some/sub/dir 来指定一个替代的根目录。

命令行界面#

在安装了 Vite 的项目中,可以在 npm scripts 中使用 vite 可执行文件,或者直接使用 npx vite 运行它。下面是通过脚手架创建的 Vite 项目中默认的 npm scripts:

{"scripts": {"dev": "vite", // 启动开发服务器"build": "vite build", // 为生产环境构建产物"serve": "vite preview" // 本地预览生产构建产物}
}

可以指定额外的命令行选项,如 --port 或 --https。运行 npx vite --help 获得完整的命令行选项列表。

使用未发布的功能#

如果你迫不及待想要体验最新的功能,可以自行克隆 vite 仓库 到本地机器上然后自行将其链接(将需要 pnpm):

git clone https://github.com/vitejs/vite.git
cd vite
pnpm install
cd packages/vite
pnpm run build
pnpm link # you can use your preferred package manager for this step

然后,回到你的 Vite 项目并运行 pnpm link vite(或者使用全局的软链来链接 vite)。重新启动开发服务器来体验新功能吧!

😊个人总结:个人才是刚入门的前端萌新,还是希望多多支持哈哈

相关文章:

vue更高效的工具-vite

目录 1.webpack 2.vite是什么 3.使用vite创建项目 4.最后总结 &#x1f43c;webpack 简单来说&#xff0c;Webpack是一个打包工具。 站在2018年的角度&#xff0c;成为一个优秀的前端工程师&#xff0c;除了要会写页面样式和动态效果之外&#xff0c;还需要会用主流的单页…...

HFish蜜罐的介绍和简单测试(一)

目录 0、什么是蜜罐 0.1、蜜罐的定义 0.2、蜜罐的优势 0.3、蜜罐与情报 1、HFish介绍 1.1、设计理念 1.2、HFish架构 1.3、HFish特点 1.4、常见蜜罐场景 2、快速部署 2.1、环境要求 2.2、联网环境&#xff0c;一键安装 2.3、安装效果 3、错误排查 3.1、管理端问题…...

2023面试题汇总二

一、CSS面试题 1. 清除浮动的方式有哪些&#xff1f; 为什么要清除浮动&#xff1f;因为浮动的盒子脱离标准流&#xff0c;如果父盒子没有设置高度的话&#xff0c;下面的盒子就会撑上来。 额外标签法(在最后一个浮动标签后&#xff0c;新加一个标签&#xff0c;给其设置cle…...

C# 支付宝接口在线收款退款

收款 在C#中使用支付宝在线支付功能&#xff0c;需要使用支付宝开放平台提供的SDK&#xff08;软件开发工具包&#xff09;&#xff0c;通过SDK中提供的API&#xff08;应用程序接口&#xff09;实现在线支付功能。 以下是使用C#实现支付宝在线支付的大致步骤&#xff1a; 获…...

python例程:《企业编码生成系统》程序

目录《企业编码生成系统》程序使用说明主要代码演示源码及说明文档下载路径《企业编码生成系统》程序使用说明 在PyCharm中运行《企业编码生成系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时&#xff0c;只需…...

基于EB工具的TC3xx_MCAL配置开发04_ADC模块软件触发Demo配置

目录 1.概述2. EB配置2.1 添加HwUnit2.2 AdcPrescale配置2.3 添加ADC通道2.4 添加Adc Group2.5 Adc Group配置2.5.1 AdcGroup->General2.5.2 AdcGroup->AdcNotification2.5.3 AdcGroup->AdcGroupDefinition2.5.4 AdcGroup->AdcResRegDefinition2.6 中断配置1.概述 …...

内存操作函数

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨未来…...

免费搭建个人博客

免费搭建个人博客,并发布到公网 利用hexo搭建个人博客&#xff0c;通过gitee的pages发布到公网 1 前置准备 安装git、安装node.js&#xff08;尽量选择长期支持的版本) node.js官网&#xff1a;https://nodejs.org/en/ git官网&#xff1a;https://git-scm.com/book/zh/v2 安装…...

【Vue全家桶】详解Vue Router(一)

【Vue全家桶】Vue Router详解&#xff08;一&#xff09; Vue系列文章目录&#xff1a; 内容参考链接Vue&#xff08;一&#xff09;【Vue全家桶】邂逅Vue、Vue的多种引入方式Vue&#xff08;二&#xff09;【Vue全家桶】声明式编程、MVVMVue&#xff08;三&#xff09;【Vue…...

9大 HIVE SQL 最频繁被问到的面试题

SQL是用于数据分析和数据处理的最重要的编程语言之一&#xff0c;因此与数据科学相关的工作&#xff08;例如数据分析师、数据科学家和数据工程师&#xff09;在面试时总会问到关于 SQL 的问题。 SQL面试问题旨在评估应聘者的技术和解决问题的能力。因此对于应聘者来说&#x…...

学大数据算跟风吗?

随着互联网、物联网和人工智能等技术的不断发展&#xff0c;大数据技术逐渐进入人们的视野&#xff0c;成为一个备受关注的热点话题。那么&#xff0c;大数据专业好学吗&#xff1f;前景如何&#xff1f;下面我们来一起探讨一下。 一、大数据专业的学习难度 大数据技术是一种综…...

[C#]关于ListBox的坑

在用C#写个Demo程序的时候&#xff0c;使用ListBox保存读取到的每行内容。然后在重复读取的时候需要清除ListBox中的内容&#xff0c;我看到ListBox有清除的函数&#xff1a;lsbFiles.Items.Clear();以为这个函数就可以解决所有的问题&#xff0c;但是....于是想了个方法准备一…...

Apache POI 入门·第一话

文章目录1 摘要2 Apache POI2.1 介绍2.2 应用场景2.3 入门案例2.3.1 将数据写入Excel文件2.3.1.1 导入POI maven坐标2.3.1.2 代码开发2.3.1.3 实现效果2.3.2 读取Excel文件中的数据2.3.3 实现效果2.4 开发案例——导出运营数据Excel报表2.4.1 产品原型2.4.2 接口设计2.4.3 代码…...

8个python自动化脚本提高打工人幸福感~比心~

人生苦短&#xff0c;我用Python 最近有许多打工人都找我说打工好难 每天都是执行许多重复的任务&#xff0c; 例如阅读新闻、发邮件、查看天气、打开书签、清理文件夹等等&#xff0c; 使用自动化脚本&#xff0c;就无需手动一次又一次地完成这些任务&#xff0c; 非常方便…...

【嵌入式烧录/刷写文件】-1-详解Motorola S-record(S19/SREC/mot/SX)格式文件

目录 1 什么是Motorola S-record 2 Motorola S-record的格式 2.1 Motorola S-record的结构 2.1.1 “Record type记录类型”的说明 2.1.2 “Record length记录长度”的说明 2.1.3 如何计算“Checksum校验和” 2.2 Record order记录顺序 2.3 Text line terminator文本行终…...

图形视图界面 图形效果

Qt的标准图形效果类&#xff1a; QGraphicsBlurEffect提供模糊效果QGraphicsColorizeEffect提供染色效果QGraphicsDropShadowEffect提供阴影效果QGraphicsOpacityEffect提供透明效果 QGraphicsBlurEffect&#xff08;模糊效果&#xff09; 模糊效果会模糊源。此效果对于减少细…...

ElementUI学习笔记

目录 一、简单介绍 二、安装 1、下载 2、引入 三、布局 1、简介 2、使用 3、好处 四、布局容器 1、常见排布 2、调整样式 五、按钮 1、简单引用 2、改变样式 3、加载中效果 六、表格 1、简单使用 2、样式修改 七、对话框 1、简单使用 2、添加自定义内容 3、…...

安装KVM并创建虚拟机及基本使用

#环境说明&#xff1a;Centos7 环境准备&#xff1a; CPU开启虚拟化&#xff0c;给宿主机的CPU和内存分配足够多的配置 安装KVM 1.安装相关软件包 yum -y install qemu-kvm libvirt virt-manager virt-install virt-viewer 软件包简介&#xff1a; qemu-kvm: 为kvm提供…...

一种LCD屏闪问题的调试

背景 项目使用ESP32-S3 RGB接口驱动的LCD, 框架 idf-v5.0, LVGL-v7.11 显示画面正常, 但肉眼可见的像是背光在闪烁, 背光电路是应用很久的经典电路, 且排查背光驱动无错, 但开机一段时间后, 闪烁会明显减轻 记录 这块屏的显示驱动芯片为ST7701S, 查看芯片手册有说明特定的上…...

Java程序运行在Docker等容器环境有哪些新问题?

第30讲 | Java程序运行在Docker等容器环境有哪些新问题&#xff1f; 如今&#xff0c;Docker 等容器早已不是新生事物&#xff0c;正在逐步成为日常开发、部署环境的一部分。Java 能否无缝地运行在容器环境&#xff0c;是否符合微服务、Serverless 等新的软件架构和场景&#x…...

C语言面试最常问的三个关键字

文章目录前言一&#xff0c;static关键字的作用二&#xff0c;const 关键字的作用2.1&#xff0c; 修饰局部变量2.2&#xff0c;修饰指针2.3&#xff0c; 修饰函数形参2.4&#xff0c;修饰函数的返回值三&#xff0c;volatile关键字的作用前言 面试的时候&#xff0c;C语言最常…...

【Linux】-初识Linux

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【Linux】 分享&#xff1a;逆着光行走&#xff0c;任风吹雨打。 ——《起风了》 主要内容&#xff1a;Linux的一些最基本指令&#xff0c;Linux的小程序&#xff0c;Linux关于连…...

精选7个 Python 学习资源库,助你成为优秀的开发者

当你在学习编程时&#xff0c;很容易被大量的资源所吓到&#xff0c;不知道该从何开始。 GitHub 仓库是一个很好的起点&#xff0c;因为它们提供了一种非常实用的方式来了解实际的编程应用。你可以查看其他人的代码&#xff0c;并将其与自己的代码进行比较和学习。 当涉及到 …...

【大数据处理与可视化】三 、Pandas库的运用

【大数据处理与可视化】三 、Pandas库的运用实验目的实验内容实验步骤一、使用pandas库分别创建Series对象和DataFrame对象&#xff0c;并对创建的对象使用索引、排序等相关操作&#xff1b;练习DataFrame对象的统计计算和统计描述的功能。1&#xff06;2、创建一个DataFrame(d…...

FPGA解码SDI视频任意尺寸缩放拼接输出 提供工程源码和技术支持

目录1、前言2、SDI理论练习3、设计思路和架构SDI摄像头Gv8601a单端转差GTX解串SDI解码VGA时序恢复YUV转RGB图像缩放FDMA图像缓存实现拼接HDMI驱动4、vivado工程详解5、上板调试验证并演示6、福利&#xff1a;工程代码的获取1、前言 FPGA实现SDI视频编解码目前有两种方案&#…...

线索二叉树结构

线索二叉树结构1.线索二插树的作用2.线索二叉树的定义3.线索二叉树的结构4. 线索二叉树的操作4.1. 建立一棵中序线索二叉树4.2. 在中序线索二叉树上查找任意结点的中序前驱结点4.3. 在中序线索二叉树上查找任意结点的中序后继结点4.4. 在中序线索二叉树上查找任意结点在先序下的…...

6.网络爬虫——BeautifulSoup详讲与实战

网络爬虫——BeautifulSoup详讲与实战BeautifulSoup简介&#xff1a;BS4下载安装BS4解析对象Tag节点遍历节点find_all()与find()find_all()find()豆瓣电影实战前言&#xff1a; &#x1f4dd;​&#x1f4dd;​此专栏文章是专门针对网络爬虫基础&#xff0c;欢迎免费订阅&#…...

Vue:路由管理模式

三种模式 Vue.js 的路由管理有三种模式&#xff1a; Hash 模式&#xff08;默认&#xff09;&#xff1a;在 URL 中使用 # 符号来管理路由。例如&#xff0c;http://example.com/#/about。这个模式的好处是可以避免浏览器向服务器发送不必要的请求&#xff0c;并且不需要特殊…...

7个最好的PDF编辑器,帮你像编辑Word一样编辑PDF

PDF 是具有数字思维的组织的重要交流工具。提供高效的工作流程和更好的安全性&#xff0c;可以创建重要文档并与客户、同事和员工共享。文档的布局已锁定&#xff0c;因此无论在什么设备上查看&#xff0c;格式都保持不变。这是让每个人保持一致的好方法——尤其是那些使用Micr…...

【数据结构】树的介绍

文章目录前言树的概念及结构树的概念树的表示树在实际中的运用二叉树的概念及结构二叉树的概念现实中的二叉树特殊的二叉树二叉树的性质二叉树的储存结构顺序存储链式存储写在最后前言 &#x1f6a9;本章给大家介绍一下树。树的难度相对于前面的数据结构来说&#xff0c;又高了…...

电脑网站和手机网站的区别/网站内部优化有哪些内容

&#xff08;来自公众账号&#xff1a;赛联信链&#xff09; 区块链已经来到世界14年了&#xff0c;中国成为重大战略也三年了。你说大家都懂区块链&#xff1f;其实人人都迷迷糊糊是真的&#xff0c;都知道却又说不清。作为区块链教育从业者&#xff0c;给学员讲了无数次&…...

软件开发人/seo博客网址

1、Suspense作用 等待异步组件时渲染一些额外内容&#xff0c;让应用有更好的用户体验 2、使用步骤 使用步骤&#xff1a; 异步引入组件 import {defineAsyncComponent} from vue const Child defineAsyncComponent(()>import(./components/Child.vue)) 使用Suspense包裹组…...

免费学校网站模板/搜索引擎优化员简历

一、VS中TCHAR转换成std::string类型 可以利用W2A函数将将_TCHAR *转换为char *&#xff0c;举例: #include “stdafx.h” #include <stdlib.h> #include <atlconv.h> //需要加入的 1 int _tmain(int argc, _TCHAR* argv[]) { _TCHAR * tchBuffer L"12345&…...

找人做网站被骗/襄阳seo

zend studio12.0.1 下载链接&#xff1a;http://pan.baidu.com/s/1ntkOQz3 这是我学习的时候用的版本&#xff0c;应该后续也是大同小异。在这里初学者往往面对一个陌生的开发工具会很迷茫&#xff0c;作为开发工具来讲最重要的就是调试功能了&#xff0c;这里我们介绍一下…...

谁有做爰网站/浏览器观看b站视频的最佳设置

总结一下Oracle数据库表级别的复制同步 一.通过触发器进行表的复制 原理,是监听表上都某一字段进行的DML操作&#xff0c;然后得到DML操作的数据,重新在另一个表上执行DML操作。 优点: 简单,编写一个触发器就可以&#xff0c;不需要过多的配置。 易修改,遇到了问题很好定位。 …...

自己做公司网站需要什么/可以搜任何网站的浏览器

简介或许大家因为putty断开导致其上运行的程序退出&#xff0c;vim编辑的文件没有保存的烦恼。今天向大家介绍一款超好用的linux屏幕工具screen。基本操作命令screen -S <名称> #新建一个screenscreen -r <名称> #加载一个screen 这样就不怕工作内容丢失了。sc…...