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

news2024/11/23 19:45:34

开箱即用 (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.coloradmin.cn/o/1191730.html

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

相关文章

QQ恢复聊天记录,就用这3个方法!

无论是因为误操作、手机丢失、系统崩溃&#xff0c;还是因为更换了新手机&#xff0c;恢复重要的QQ聊天记录都是一件必做的事情。通过聊天记录&#xff0c;用户可以随时查看之前的信息&#xff0c;以便了解事情的经过。 那么&#xff0c;如何恢复丢失的QQ聊天记录呢&#xff1…

【算法】道路与航线(保姆级题解)

题目 农夫约翰正在一个新的销售区域对他的牛奶销售方案进行调查。 他想把牛奶送到 T 个城镇&#xff0c;编号为 1∼T。 &#xff08;存在T个点&#xff09; 这些城镇之间通过 R 条道路 (编号为 1 到 R) 和 P 条航线 (编号为 1 到 P) 连接。 &#xff08;存在R条道路&#…

【Proteus仿真】【Arduino单片机】LCD1602-IIC液晶显示

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用PCF8574、LCD1602液晶等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602液晶显示各种效果。 二、软件设计 /* 作者&#xff1a;嗨小…

分享一个使用get_hash_value比对数据脚本

使用get_hash_value获取每个字段的值&#xff0c;再sum起来比对&#xff0c;如果表有lob字段&#xff0c;则会先排除掉lob字段再比对其它字段 这个脚本有两个问题&#xff1a; 1.如果字段所有的值长度加起来超过4000会报错&#xff0c;比对不了&#xff0c;这种情况一般比较少…

【亚马逊云科技产品测评】活动征文|AWS EC2 部署Echarts大屏展示项目

前言 Echarts简介 ECharts是一个使用JavaScript开发的&#xff0c;开源的可视化库。它可以让数据变得生动起来&#xff0c;提供直观&#xff0c;交互性强&#xff0c;可高度个性化定制的数据可视化图表。ECharts支持大部分的浏览器&#xff0c;如IE6、Chrome、Firefox、Safari等…

《QT从基础到进阶·十六》QT实现客户端和服务端的简单交互

QT版本&#xff1a;5.15.2 VS版本&#xff1a;2019 客户端程序主要包含三块&#xff1a;连接服务器&#xff0c;发送消息&#xff0c;关闭客户端 服务端程序主要包含三块&#xff1a;打开消息监听&#xff0c;接收消息并反馈&#xff0c;关闭服务端 1、先打开服务端监听功能 …

烟草5G智慧工厂数字孪生可视化平台,赋能烟草工业数字化智慧转型

随着卷烟工厂提质增效需求增强&#xff0c;信息化建设推进及生产制造系统智能化改革发展&#xff0c;各生产单元逐步升级完善数字化&#xff0c;最终实现智能制造成为必然趋势。因此&#xff0c;5G卷烟加工工厂的数字化转型迫在眉睫。中国烟草制造行业正迈向全新的市场经济时代…

vue-element-admin 集成框架设置中文语言

首先拉取中文版分支代码 https://github.com/PanJiaChen/vue-element-admin/tree/i18n &#xff08;下载卡的话&#xff0c;下载小羊的压缩包&#xff0c;已上传资源&#xff09; \src\lang\index.js 改完dangdangdang可以啦

性价比高的照明品牌,五款经济实惠的照明品牌推荐

很多家长有时候会说孩子觉得家里的台灯灯光刺眼&#xff0c;看书看久了就不舒服。这不仅要看光线亮度是否柔和&#xff0c;还要考虑台灯是不是有做遮光式设计。没有遮光式设计的台灯&#xff0c;光源外露&#xff0c;灯光会直射孩子头部&#xff0c;孩子视线较低&#xff0c;很…

Kotlin库实现多线程爬取数据

由于字数限制&#xff0c;以下是一个简化版的爬虫程序示例&#xff0c;使用了Kotlin的网络库kotlinx.coroutines和kotlinx.html。这个程序会爬取一个简单的Python多线程跑数据的网页&#xff0c;并打印出结果。 import kotlinx.coroutines.* import kotlinx.html.* import java…

Word脚注如何插入?1分钟学会!

“最近在写一些文章&#xff0c;引用了一些注释&#xff0c;想为它们增添一些脚注。有没有朋友知道在word里脚注怎么添加呀&#xff1f;” 使用word编写文章时&#xff0c;添加脚注是一项常见的任务&#xff0c;用于引用文献、添加注释或提供额外信息。但可能很多朋友不知道wor…

如何在本地运行稳定扩散模型

推荐基于稳定扩散(stable diffusion) AI 模型开发的自动纹理工具&#xff1a; DreamTexture.js自动纹理化开发包 - NSDT 继 DALL-E 2 和 Imagen 之后&#xff0c;新的深度学习模型 Stable Diffusion 标志着文本到图像领域的巨大飞跃。本月早些时候发布的 Stable Diffusion 承诺…

Java进阶(垃圾回收GC)——理论篇:JVM内存模型 垃圾回收定位清除算法 JVM中的垃圾回收器

前言 JVM作为Java进阶的知识&#xff0c;是需要Java程序员不断深度和理解的。 本篇博客介绍JVM的内存模型&#xff0c;对比了1.7和1.8的内存模型的变化&#xff1b;介绍了垃圾回收的语言发展&#xff1b;阐述了定位垃圾的方法&#xff0c;引用计数法和可达性分析发以及垃圾清…

vue3+antv2.x的画布

报错信息&#xff1a; TypeError: Cannot destructure property component of registry_1.shapeMaps[node.shape] as it is undefined. at VueShapeView.renderVueComponent (http://192.168.10.35:9029/node_modules/.vite/deps/antv_x6-vue-shape.js?v49fbfab0:5569:19…

卷王必看。非肿瘤+WGCNA+单细胞,快来抄作业

今天给同学们分享一篇生信文章“m6A Regulators Is Differently Expressed and Correlated With Immune Response of Esophageal Cancer”&#xff0c;这篇文章发表在Dis Markers期刊上&#xff0c;影响因子为3.464。 结果解读&#xff1a; 食道癌中差异表达基因&#xff08;D…

第18章 Swing 程序设计

概述 String包的层次结构和继承关系如下 常用的Swing组件如下表 Swing常用窗体 JFrame 窗体 JFrame 类的常用构造方法包括以下两种形式&#xff1a; public JFrame&#xff08;&#xff09;&#xff1a;创建一个初始不可见、没有标题的窗体。 public JFrame(String title)…

mac录屏没有声音?这里有答案!

在mac上进行屏幕录制是一件简单的事情&#xff0c;可用于创建教程、演示、游戏录制等。然而&#xff0c;有时用户可能会遇到一个常见的问题——录制视频时没有声音。本文将介绍两种主要的方法来解决mac录屏没有声音的问题&#xff0c;以确保您的录制包含声音。 mac录屏没有声音…

【LeetCode: 54. 螺旋矩阵 | 模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

微信小程序主包和分包资源相互引用规则

微信分包文档 文档中只提到了分包对于兄弟分包和主包之间的引用关系&#xff0c;但是并未提及&#xff0c;主包是否可以引用分包资源。其实只需要明白两点&#xff0c; 第一点&#xff1a;分包永远都是异步加载的 第二点&#xff1a;主包可以预加载分包 那么其实这里就已经很…

解决:AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_id‘

解决&#xff1a;AttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_id’ 背景 在使用之前的代码通过selenium定位元素时&#xff0c;报错&#xff1a;selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to loca…