一文快速上手-create-vue脚手架

文章目录

    • 初识 create-vue
    • create-vue新建项目
    • Vue.js 3 项目目录结构
    • 项目的运行和打包
    • vite.config.js文件解析
    • 其他:webpack和Vite的区别

初识 create-vue

create-vue类似于Vue CLI脚手架,可以快速创建vuejs 3项目,create-vue基于Vite。Vite支持Vue CLI中的大多数配置,并且Vite以极速启动服务、快如闪电的热重载,提供了更好的开发体验

与Vue CLI 不同的是,create-vue脚手架会根据你选择的功能创建一个预配置的项目,然后将其余部分委托给Vite。

注意:create-vue脚手架要求Node.js版本大于16

create-vue新建项目

create-vue脚手架创建vue3版本项目,有两种常见的方式。

1.全局安装create-vue脚手架

npm i create-vue@latest -g

使用create-vue命令创建Vue.js 3 项目。

创建项目命令:

create-vue createapp-vue3demo

其中createapp-vue3demo是项目名称。

2.局部安装create-vue脚手架

npm init vue@latest

这里执行npm init vue@latest的意思:

  • 临时安装create-vue@latest脚手架(注意:不是全局安装)
  • 安装完成后立即执行create-vue命令来创建项目

在VScode终端执行npm init vue@latest命令,创建一个如02-createapp-demo项目,如下所示(示例代码都选择了否,实际项目中根据需要选择相应的功能):

请输入项目名称: ... createapp_demo
√ 是否使用 TypeScript 语法? ... 否 / 是
√ 是否启用 JSX 支持? ... 否 / 是
√ 是否引入 Vue Router 进行单页面应用开发? ... 否 / 是
√ 是否引入 Pinia 用于状态管理? ... 否 / 是
√ 是否引入 Vitest 用于单元测试? ... 否 / 是
√ 是否要引入一款端到端(End to End)测试工具? » 不需要
√ 是否引入 ESLint 用于代码质量检测? ... 否 / 是

Vue.js 3 项目目录结构

createapp_demo/       # 项目的名称(命名规范:建议统一小写,多个单词使用下划线分割)
|-- public/              # 静态资源目录  
|   |-- favicon.ico      # 网站图标  
|-- src/                 # 源代码目录  
|   |-- assets/          # 存放静态资源,如图片、字体等  
|   |-- components/      # 可复用的 Vue 组件目录  
|   |-- views/           # 页面目录,存放路由对应的组件  
|   |-- App.vue          # 根组件  
|   |-- main.js          # 项目的入口文件  
|   |-- main.ts          # TypeScript 版本的入口文件(如果选择了 TypeScript)  
|-- tsconfig.json        # TypeScript 配置文件(如果选择了 TypeScript)  
|-- .gitignore           # Git 忽略的文件和目录  
|-- index.html           # 项目的入口 HTML 文件  
|-- package.json         # 项目的元数据和依赖信息  
|-- package-lock.json    # npm 依赖锁定文件  
|-- vite.config.js       # Vite 配置文件  
|-- README.md            # 项目说明文件

项目的运行和打包

"dev": "vite",
"build": "vite build",
"preview": "vite preview"

说明:

  • dev:启动项目的本地运行脚本
  • build:打包项目的脚本
  • preview:预览编译后的项目的脚本

vite.config.js文件解析

与Vue CLI相同,create-vue脚手架也提供了一些常用的配置,方便我们进行扩展和自定义。这些配置包括outDir、assetsDir、alias、base和server等。

vite.config.js默认的配置代码如下:

import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'// https://vitejs.dev/config/
export default defineConfig({plugins: [vue(),],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}}
})
  • 1.outDir:指定打包输出的目录名称,默认是dist(与vue.config.js中的outputDir功能相同)。
export default defineConfig({......build: {outDir: 'build'}
})
  • 2.assetsDir:用于指定静态资源存放的目录,默认是assets(与vue.config.js中的assetsDir功能相同)。

项目代码编译后,index.html引入资源默认情况如下:

<script type="module" crossorigin src="/assets/index-BEb411hP.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BaMTLMsk.css">

配置:

export default defineConfig({......build: {outDir: 'build',assetsDir: 'static' // 指定静态资源存放目录(相对于build.outDir),默认是assets}
})

上面配置调整后,index.html引入资源情况如下:

<script type="module" crossorigin src="/static/index-lKLvkvL0.js"></script>
<link rel="stylesheet" crossorigin href="/static/index-BaMTLMsk.css">
  • 3.base:用于指定开发或者生产的公共基础路径,即指定引用资源的前缀(与vue.config.js中的publicPath功能相同),代码如下:
export default defineConfig({base: './'
})

base属性支持:

- 绝对URL路径,如`/my-app/`
- 完整URL,如`http://it.com/`;
- 用于开发或者生产环境的空字符串或'./'
  • 4.alias:用于为导包的路径设置别名(与vue.config.js中的alias功能相同),示例代码如下:
export default defineConfig({.......resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url)),'components': fileURLToPath(new URL('./src/components', import.meta.url))}},......
})

引入HelloWorld组件就有如下三种方式:

import HelloWorld from './components/HelloWorld.vue'
import HelloWorld from '@/components/HelloWorld.vue'
import HelloWorld from 'components/HelloWorld.vue'
  • 5.server:用于开发环境设置服务器选项

示例:

import { defineConfig } from "vite";// https://vitejs.dev/config/
export default defineConfig({server: {host: "localhost",port: 8081,open: true,proxy: {},},
});

其他:webpack和Vite的区别

Vue CLI是基于webpack实现的,而create-vue是基于vite实现的。

主要区别:

  • 在打包应用程序时,webpack会生成一个依赖关系图。该依赖关系图中含有应用程序所需要的所有模块,然后遍历图结构,编译一个个模块,当某个模块有变化时,相关依赖模块需要全部编译一次。项目越复杂、模块越多,打包速度就越慢。
  • Vite利用ES Module 可以自动发起请求的特性,在打包应用程序时,Vite不需要分析模块的依赖,也不需要编译。当浏览器请求某个模块时,再按需对模块内容进行编译,这种按需动态编译的方式大幅度减少了编译时间。因此,Vite的启动速度非常快,比JavaScript编写的打包器预构建依赖的速度快10倍到100倍,项目越复杂、模块越多。
  • Vite 天然支持打包TypeScript、JSX、CSS等文件;而webpack需要安装对应的Loader进行处理。
  • webpack支持开发和生产环境打包;Vite在打包生产环境时需要使用Rollup,Vite的主要优势体现在开发阶段。
  • webpack无论是自身优势还是生态都非常强大,使用者非常多;而Vite的整个社区生态正在快速完善。

说明:ES Module 是 JavaScript 的官方模块化标准,它允许开发者通过importexport 语句来组织和分享代码。特别地,ES Module 支持动态导入,即使用 import() 函数来异步地加载一个模块。这种动态导入的特性为 Vite 提供了按需编译的基础。

注意事项:

  • 虽然 Vite 的按需编译策略在开发过程中非常有效,但在生产环境中,通常仍然需要静态地分析和打包代码,以确保最佳的加载性能和兼容性。因此,Vite 提供了构建命令,用于在生产环境中生成优化过的代码 bundle。
  • 在企业生产环境中,建议优先选择 Vue CLI脚手架,因为 webpack 经过多年发展,已经非常稳定,社区生态也非常成熟。

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

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

相关文章

【机器学习】经典数据集鸢尾花的分类识别

【机器学习】经典数据集鸢尾花的分类识别 1、数据集介绍1.1 数据集详情 2、实验内容2.1 准备数据集2.2 创建颜色映射对象2.3 绘制特征散点图2.4 数据的归一化2.5 数据的标准化 3、实验截图提取萼片长度与萼片宽度分类提取萼片长度与花瓣长度分类提取萼片长度与花瓣宽度分类提取…

【海贼王航海日志:前端技术探索】一篇文章带你走进JavaScript(一)

目录 1 -> 初识JavaScript 1.1 -> JavaScript是什么 1.2 -> 发展历史 1.3 -> JavaScript和HTML和CSS之间的关系 1.4 -> JavaScript运行过程 1.5 -> JavaScript的组成 2 -> 前置知识 2.1 -> JavaScript的书写形式 2.2 -> 注释 2.3 -> 输…

使用OpenCV进行模糊检测(拉普拉斯算子)

参考&#xff1a; 使用OpenCV进行模糊检测&#xff08;拉普拉斯算子&#xff09; 代码&#xff1a; # import the necessary packages from imutils import paths import argparse import cv2 import osdef variance_of_laplacian(image):# compute the Laplacian of the ima…

ISSTA 2024盛大开幕:中国学者的录取数和投稿量均位列第一

随着夏日的尾声&#xff0c;全球软件测试领域的专家和学者齐聚在奥地利维也纳。共同参与这场科技盛宴——ISSTA 2024。这场国际会议正如火如荼地进行中&#xff0c;吸引了来自世界各地的专业人士参与。 会议实况&#xff1a; 9月16日与17日&#xff0c;大会安排了丰富的社交活…

把设计模式用起来!(3)用不好模式?之时机不对

上一篇&#xff1a;《把设计模式用起来&#xff08;2&#xff09;——用不好&#xff1f;之实践不足》 本篇继续讲设计模式用不好的常见原因&#xff0c;这是第二个&#xff1a;使用设计模式的时机不对。 二、时机不对 这里说的时机并不是单纯指软件研发周期中的时间阶段&…

使用rust自制操作系统内核

一、系统简介 本操作系统是一个使用rust语言实现&#xff0c;基于32位的x86CPU的分时操作系统。 项目地址&#xff08;求star&#xff09;&#xff1a;GitHub - CaoGaorong/os-in-rust: 使用rust实现一个操作系统内核 详细文档&#xff1a;自制操作系统 语雀 1. 项目特性 …

数据库加密算法

功能简介 对数据库字段进行加密,如下图: 一、yml配置 注意: MD5_32 MD5_16 BASE64 AES SM2 SM3 SM4 需要 password(14位 ,26位, 32 位) 就行 非对称算法如:SM2,RSA, 需要配置 密码:password 公钥:publicKey 私钥:privateKey yml: # 数据加密 mybatis-encry…

【新手/小白教程】打开一个vue项目的前置准备,nvm安装指定版本node

目录 一、前言二、nvmnvm介绍nvm下载与安装1. 官网下载 nvm 包2. 安装 nvm-setup.exe3. 配置路径和下载镜像4. 检查nvm是否安装完成5. 错误情况 三、nodenode版本查看node命令 一、前言 在换新电脑的时候总是需要把所有东西重新安装配置&#xff0c;这篇用来记录一下打开一个v…

vmware中的ubuntu系统扩容分区

1.虚拟机关机 右击虚拟机/设置&#xff0c;进入虚拟机设置 3.启动虚拟机&#xff0c;进入命令行 4.fdisk -l查看要扩展的分区名 5.resize要扩容的分区 su root parted /dev/sda resizepart 3 100% fdisk -l resize2fs /dev/sda3 df -T完成 6.其他 进入磁盘管理 fdisk /d…

【深度智能】:迈向高级时代的人工智能全景指南

​ ​ 前几天偶然发现了一个超棒的人工智能学习网站&#xff0c;内容通俗易懂&#xff0c;讲解风趣幽默&#xff0c;简直让人欲罢不能。忍不住分享给大家&#xff0c;人工智能立刻跳转&#xff0c;开启你的AI学习之旅吧&#xff01; 第一阶段&#xff1a;基础知识 1. 计算机科…

Kotlin 中的 `flatMap` 方法详解

在 Kotlin 中&#xff0c;flatMap 是一个非常强大的集合操作函数&#xff0c;它结合了 map 和 flatten 的功能。flatMap 能够将一个集合中的每个元素映射为另一个集合&#xff0c;然后将这些集合连接成一个单一的集合。在很多场景下&#xff0c;它比单独使用 map 和 flatten 更…

时空大数据平台:激活新质生产力的智慧引擎

在数字化转型的浪潮中&#xff0c;时空大数据平台以其独特的价值&#xff0c;成为推动新质生产力发展的关键力量。本文不仅深入剖析时空大数据平台的定义与内涵&#xff0c;探讨其在智慧城市、智慧农业、环境管理、应急管理等领域的应用成效&#xff0c;还将详尽阐述平台如何通…

iPhone 16系列:摄影艺术的全新演绎,探索影像新境界

在科技的浪潮中&#xff0c;智能手机摄影功能的进化从未停歇。 苹果公司即将推出的iPhone 16系列&#xff0c;以其卓越的相机升级和创新特性&#xff0c;再次站在了手机摄影的前沿。 从硬件到软件&#xff0c;从拍照体验到图像处理&#xff0c;iPhone 16系列都展现了其在移动…

Windows下安装部署RocketMQ

Windows下安装部署RocketMQ 引言下载安装rocketmq配置环境变量启动NameServer启动Brokerrocketmq控制台[rocketmq-dashboard](https://github.com/apache/rocketmq-dashboard)安装及配置修改rocketmq记录日志地址设置namesrv、broker堆栈内存RocketMQ注册为Windows服务start.ba…

pod基本概念

一 、Pod Pod 是 kubernetes 基本调度单位。每个 Pod 中可以运 行一个或多个容器&#xff0c;共享 Pod 的文件系统、IP 和网络等 资源&#xff0c;每个 Pod 只有一个 IP。 1. 创建 Pod 声明式文件方式创建 Pod&#xff0c;支持 yaml 和 json 创建 pod 测试访问 2. 更改 Pod 的…

解决phpstudy无法启动MySQL服务

三种方法 如果说你在小皮里面&#xff0c;启动mysql&#xff0c;发现启动不了&#xff0c;而且你在你自己电脑本地有装过mysql服务&#xff0c;那么可以按照我下面的不走来&#xff0c;按顺序试验1&#xff0c;2&#xff0c;3,三个里面肯定有一个是可以解决的 1.停止本地的mysq…

EasyExcel 快速入门

目录 一、 EasyExcel简介 官网链接&#xff1a; 代码链接&#xff1a; 二、 EasyExcel快速上手 引入依赖&#xff1a; 设置Excel相关注解 编写对应的监听类&#xff1a; 简单写入数据&#xff1a; 简单读取数据&#xff1a; 不需要使用监听器&#xff1a; 需要使…

视频工具EasyDarwin将本地视频生成RTSP给WVP拉流列表

效果 ffmpeg生成rtsp流 EasyDarwin的rtsp端口默认的是10054, 使用ffmpeg将本地视频转到EasyDarwin的rtsp。 F:\rtsp\ffmpeg-7.0.2-essentials_build\bin>ffmpeg -re -i F:\rtsp\123.mp4 -rtsp_transport tcp -vcodec h264 -f rtsp rtsp://127.0.0.1:10054/video11 它的直播…

Yocto - 使用Yocto开发嵌入式Linux系统_01 前言

Embedded Linux Development Using Yocto Project: Leverage the power of the Yocto Project to build efficient Linux-based products, Third Edition By: Otavio Salvador, Daiane Angolini Overview of this book Yocto 项目是开发可靠的嵌入式 Linux 项目的行业标准。与…

【网络安全】-文件包含漏洞-pikachu

文件操作漏洞包括文件上传漏洞&#xff0c;文件包含漏洞&#xff0c;文件下载漏洞。 文章目录 前言 : 什么是文件包含漏洞&#xff1f; 1.文件包含漏洞的分类&#xff1a; 本地文件包含漏洞&#xff1a; 远程文件包含漏洞&#xff1a; 2.两种文件包含漏洞的区别&#xff1a; 3.…