Vite项目的初体验 - 非Vite脚手架版本

开箱即用 (out of box): 无需做任何的配置,就可以用vite来帮助我们处理构建工作。

前提 :node 版本 >= 12.0.0,使用 npm 进行依赖管理。
本文的案例,从0到1的,一步一步的体会vite的作用。
本文的阅读顺序,建议从上到下依次阅读,每个步骤之间都具有关联性。

步骤一 : 先运行一个普通的项目

开发环境简述

本文中的案例使用 VSCode 工具。

目录结构

study-vite| -- index.html| -- mymath.js| -- main.js

文件内容

mymath.js

简单定义一个函数,然后导出

export function sayHello(){console.log('Hello world');
}

main.js

引入 mymath.js 中的方法,然后调用一下

import { sayHello } from "./mymath.js";// 调用一下方法
sayHello();

index.html

通过 type=“module” 的方式引入 main.js

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body>测试一个普通的前端项目<script type="module" src="./main.js" ></script></body>
</html>

运行

注意 :
运行时,不可以从浏览器中直接打开index.html文件进行访问,因为有模块的导入导出,
若是直接访问的话会报错,会提示 跨域问题等。
index.html:1 Access to script at 'file:///D:/xxx/study-vite/main.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome-untrusted, https, edge.

正确的运行姿势 :
使用vscode中 LiveServer 进行运行

在这里插入图片描述

浏览器中访问index.html,控制台中可以看到正常的输出。

在这里插入图片描述

至此,一个基本的项目已经完成了。

步骤二 :引入node_modules中的依赖,体会无法加载的错误

本步骤测试使用的依赖是 【lodash】,
其实用什么依赖无所谓,
主要是体会一下在node_modules中的模块如果不进行配置是无法加载的。

npm 初始化项目

在 项目根目录(study-vite)下执行命令 npm init -y

执行完毕后,会生成 package.json 文件,
此时的目录结构就变成了下面的样子:

study-vite| --  index.html| --  mymath.js| --  main.js| --  package.json

npm 安装 lodash 依赖

在 项目根目录(study-vite)下执行命令 npm install lodash -save

执行完成后会在生成 node_modules 目录,且lodash的依赖会存放于该目录下
此时的目录结构就变成了下面的样子:

study-vite| -- node_modules| --  index.html| --  mymath.js| --  main.js| --  package.json

安装完成后,package.json文件中会添加如下内容:

  "dependencies": {"lodash": "^4.17.21"
}

在 main.js 中直接使用 lodash 依赖

import { sayHello } from "./mymath.js";// 引入lodash 模块
import {_} from "lodash"// 调用一下方法
sayHello();//使用 : 打印一下lodash
console.log("lodash : ",_)

运行一下

当然了,本次运行仍然是通过 Live Server 进行的。
此时,会提示 无法解析 lodash 这个模块,因为,浏览器是无法直接读取 node_modules 中的依赖的。

在这里插入图片描述

至此,问题已经暴露出来了
没有构建工具的情况下,这些依赖是无法正常加载使用的!

npm install vite --save-dev :下载依赖包,只会在开发环境中用到的那种

步骤三 : 引入 vite ,体会加载成功的快乐

说明 :
vite 是一个 构建工具,因此,只是在开发过程中使用到。

npm 安装 vite

在 项目根目录(study-vite)下执行命令 npm install vite --save-dev

安装完成后,package.json文件中会添加如下内容:

  "devDependencies": {"vite": "^4.5.0"}

修改package.json中的运行脚本

我们先简单写一个,首先体会的就是 vite 的开箱即用的特点,
无需做任何其他的配置,直接用。

  "scripts": {"dev": "vite"},

运行一下

因为我们引入了vite ,所以此时,我们再运行项目,就直接使用vite了
执行如下命令(就是我们再上面添加的脚本命令):
npm run dev

在这里插入图片描述

浏览器中访问一下

在这里插入图片描述

至此,手动添加 vite 并直接使用的案例就完成了。
非常的丝滑。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图解三傻排序 选择排序、冒泡排序、插入排序

&#xff08;1&#xff09;选择排序 // 交换 void swap(int arr[], int i, int j) {int tmp arr[i];arr[i] arr[j];arr[j] tmp; }// 选择排序 void selectionSort(int arr[],int len) {if (len < 2) return;for (int minIndex, i 0; i < len - 1; i) {minIndex i;f…

WPS的JS宏基础(一)

基础知识 1、简单的第一个宏 //注意function只能全部用小写 function demo(){alert("你好!") }2、录制宏生成工资条 function 使用录制宏自动生成代码以JS宏为例()//使用相对引用 {Selection.Copy(undefined);ActiveCell.Offset(5, 0).Range("A1:M4").I…

Ubuntu22.04 下 NFS 相关问题与完整配置(客户机 MacOS)

categories: [Linux-Shell] tags: Linux NFS 写在前面 最近折腾一下 NFS, 先白嫖一顿华子云的 1 个月服务器, 2C4G 感觉不错了, 但NFS 配置起来还是有点难度, 主要还是随机分配的端口配置方面比较恶心. server环境: 华为云 2C4G Ubuntu22.04 client环境: MacOS M1 with brew …

排序算法的分析及实现

目录​​​​​​​ 1. 排序 1.1. 排序的概念 1.2. 排序的稳定性 1.3. 内部排序和外部排序 2. 直接插入排序 2.1. 直接插入排序 2.2. 直接插入排序的两种情况 1. 情况一 2. 情况二 2.3. 直接插入排序的单趟排序 2.4. 直接插入排序的完整实现 2.5. 直接插入排序的时…

接收表单数据

如果您尝试按下提交按钮&#xff0c;浏览器将显示“Method Not Allowed”错误。这是因为到目前为止&#xff0c;前一节中的登录视图函数完成了一半的工作。它可以在网页上显示表单&#xff0c;但是还没有逻辑来处理用户提交的数据。这是Flask-WTF使工作变得非常简单的另一个领域…

selenium xpath定位

selenium-xpath定位 <span style"background-color:#2d2d2d"><span style"color:#cccccc"><code class"language-javascript">element_xpath <span style"color:#67cdcc"></span> driver<span styl…

有什么可以自动保存微信文件的方法么?

8-3 本文要介绍的方法&#xff0c;可以自动帮你保存微信上收到的文件型数据&#xff0c;比如文件、图片、视频&#xff0c;如果你的工作需要每天或者经常保存大量的从微信收到的文件型数据&#xff0c;也许本文适合你&#xff0c;本文介绍的工具&#xff0c;对微信多开也有效果…

Git安装配置保姆级教程和Git创建仓库的基本原理和常用命令

目录 前言 一、Git简介 1.Git 与 SVN 区别点 2.Git的介绍 3.Git 工作流程 4.Git 工作区、暂存区和版本库 二、Git安装配置 1.Linux 平台上安装 2.Windows 平台上安装 三、Git 创建仓库和下载 1、首先需要注册一个gitee账号 2.git初始化并提交到远程仓库 3.另一用户…

STM32 蜂鸣器介绍 配置 播放音节

蜂鸣器一般被分为两类&#xff1a;有源蜂鸣器和无源蜂鸣器。其中源是振荡源。有源蜂鸣器内部有振荡电路&#xff0c;可以把直流电源转换为一定频率的脉冲信号。因为它一直输出一定的频率&#xff0c;我们无法改变频率&#xff0c;所以声音只有一种&#xff0c;我们只能通过电源…

表象变换与矩阵元

表象变换 一维粒子哈密顿量 表象中的矩阵元 态的表象变换 不难证明 算符的表象变换 坐标表象 Non-denumerable basis

高校教务系统登录页面JS分析——长沙理工大学教务系统

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文&#xff0c;你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文将是本专栏最后一篇文章&#xff0c;我看了绝大多数高…

微信小程序:js实现不改变原数组的情况下增加一条对象到新数组中

效果 核心 old_array.slice(0) 表示对 old_array 这个数组进行切片操作&#xff0c;从索引 0 开始&#xff08;包括索引 0&#xff09;&#xff0c;直到数组的末尾&#xff0c;old_array.slice(0) 中的 0 表示开始切片的索引位置&#xff0c;而由于没有传入第二个参数&#xff…

利用中断做数码表

功能要求:1.按下KEY1&#xff0c;显示数字开始每0.5秒加1&#xff0c;加到&#xff08;10学号&#xff09;返回0&#xff0c;0显示2秒后继续开始重复加1。 2. 任何时候按下KEY2数字清零&#xff0c;并停止加1。 3. KEY1和KEY2分别采用查询和外部中断方式。 要求程序中有硬件…

游戏缺失d3dx9_39.dll的5个修复方法,深度解析d3dx9_39.dll文件的作用

在当今的数字化时代&#xff0c;电子游戏已经成为了人们休闲娱乐的重要方式之一。然而&#xff0c;对于许多玩家来说&#xff0c;他们在享受游戏带来的乐趣的同时&#xff0c;也可能会遇到各种各样的问题&#xff0c;其中最常见的就是游戏无法正常运行。而这些问题中&#xff0…

毫米波雷达技术在自动驾驶中的关键作用:安全、精准、无可替代

自动驾驶技术正以前所未有的速度不断演进&#xff0c;而其中的关键之一就是毫米波雷达技术。作为自动驾驶系统中的核心感知器件之一&#xff0c;毫米波雷达在保障车辆安全、实现精准定位和应对复杂环境中发挥着不可替代的作用。本文将深入探讨毫米波雷达技术在自动驾驶中的关键…

Hive 常用存储、压缩格式

1. Hive常用的存储格式 TEXTFI textfile为默认存储格式 存储方式&#xff1a;行存储 磁盘开销大 数据解析开销大 压缩的text文件 hive 无法进行合拆分 SEQUENCEFILE sequencefile二进制文件&#xff0c;以<key,value>的形式序列到文件中 存储方式&#xff1a;行存储 可…

基于SSM的飞机航班管理系统

基于SSM的飞机航班管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringMyBatisSpringMVC工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 航班列表 管理员界面 航班管理 订单管理 用户管理 摘要 飞机航班管理系统是…

文件缓存的读写

文件系统的读写&#xff0c;其实就是调用系统函数 read 和 write。下面的代码就是 read 和 write 的系统调用&#xff0c;在内核里面的定义。 SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count) {struct fd f fdget_pos(fd); ......loff_t pos f…

大容量疯了!居然想把磁带放到硬盘,100TB+是否可以实现?

1.引言 上一篇关于大容量硬盘的文章&#xff08;HDD最后的冲刺&#xff1a;大容量硬盘的奋力一搏&#xff09;中&#xff0c;我们针对大容量硬盘研发状态&#xff0c;小编最近又有了新发现。WDC希望可以通过HDD和磁带结合&#xff0c;把盘的容量提升到100TB。 2.数据大爆炸的…

【算法】算法题-20231110

一、力口&#xff1a;506. 相对名次 简单 给你一个长度为 n 的整数数组 score &#xff0c;其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。 运动员将根据得分 决定名次 &#xff0c;其中名次第 1 的运动员得分最高&#xff0c;名次第 2 的运动员得分第…