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

vue3项目搭建

前一段时间招聘前端开发,发现好多开发连基本的创建项目都不会,这里总结一下

在Vue 3中,使用Webpack和Vite创建的项目文件结构及语言(JS/TS)的选择有以下主要区别:


1. 创建方式与文件结构差异

方式一、Webpack(Vue CLI)

  • 创建命令:

    vue create project-name

  • 典型文件结构:
    ├── public/              # 静态资源(直接复制到dist)
    │   └── index.html        # 主HTML模板 
    ├── src/
    │   ├── assets/          # 静态资源(需打包处理)
    │   ├── components/      # Vue组件 
    │   ├── App.vue           # 根组件 
    │   └── main.js           # 入口文件(JS/TS)
    ├── babel.config.js       # Babel配置 
    ├── vue.config.js         # Webpack自定义配置 
    └── package.json          # 依赖和脚本 
    
  • 特点:
    • 依赖Webpack,配置复杂但灵活(需手动修改vue.config.js )。
    • 构建速度较慢(尤其是大型项目)。

方式二、Vue

  • 创建命令:

    npm create vue@latest 

     方法三、Vite

  • npm create vite
    按提示选择vue、React、Angular等框架
    再选择语言js、ts等
  • 要执行vite命令必须在全局和项目中安装。

  • 全局安装       npm install -g vite      查看是否安装 npm list -g vite

    项目中安装   npm install vite --save-dev

  •  创建的项目内容比较精炼

  • 典型文件结构:
    ├── public/              # 静态资源(直接复制到dist)
    ├── src/
    │   ├── assets/          # 静态资源(Vite原生支持现代格式)
    │   ├── components/      # Vue组件 
    │   ├── App.vue           # 根组件 
    │   └── main.js           # 入口文件(JS/TS)
  •     |-------index.html    #注意这个文件的位置,和vue2不同
  • ├── vite.config.js        # Vite专属配置 
    └── package.json  
    
  • 特点:
    • 原生ES模块支持,启动和热更新极快。
    • 更简洁的配置(如无需Babel,默认支持ES6+)。

2. 语言选择(JS/TS)

  • 选择时机:
    • Webpack/Vite均支持:在创建项目时通过命令行交互选择:
      • 使用npm create vue@latest时,会提示是否选择TypeScript。
      • 使用vue create时,需手动勾选TypeScript选项。
    • 默认生成文件:
      • 选择TS时,入口文件为main.ts ,组件语法为<script setup lang="ts">
      • 选择JS时则为main.js 和普通<script setup>
  • 后续切换:
    • 手动修改文件扩展名(如.js.ts),并安装@types/node等类型依赖。
    • 需更新配置文件(如tsconfig.json 或vite.config.js 中的类型声明)。

3. 关键配置差异

配置项Webpack (Vue CLI)Vite
配置文件vue.config.jsvite.config.js
TS支持需安装@vue/cli-plugin-typescript原生集成,无需额外插件
构建速度较慢(基于打包器)极快(ESM按需编译)

4. 如何选择?

  • 选Vite:追求开发效率、现代浏览器兼容性,或项目无需复杂Webpack优化。
  • 选Webpack:需要历史浏览器支持、自定义复杂构建流程(如微前端)。
  • 选TS:项目规模大、需要类型安全;否则JS更轻量。

建议:Vue 3新项目优先用Vite + TS组合,未来生态(如Pinia、Vue Router)已全面转向TS支持。

http://www.dtcms.com/a/304692.html

相关文章:

  • VIKOR(Multi-criteria Optimization and Compromise Solution)简介与简单示例
  • 无人机图传:让天空视角 “触手可及”
  • Apache Ignite 的分布式原子类型(Atomic Types)
  • 【高阶版】R语言空间分析、模拟预测与可视化高级应用
  • 解密犯罪时间 - 华为OD统一考试(JavaScript 题解)
  • 自定义View和动画学习记录 抓娃娃机View
  • DataParallel (DP) DistributedDataParallel (DDP)
  • 15-TPS65261 4.5V 至 18V 输入电压、3A/2A/2A 输出电流三路同步降压转换器
  • 分布式时序数据库的特点解析
  • Three.js 完整实战项目:构建一个 3D 商品展示空间
  • UE5 打包Windows平台时无法找到SDK的解决方法
  • C# 基于halcon的视觉工作流-章25-椭圆查找
  • 【自动化运维神器Ansible】Ansible常用模块之service模块详解
  • C++ 赋值与交换法则
  • STM32 集成 USB 时出现 HAL_StatusTypeDef 未定义 的错误
  • STM32--DHT11(标准库)驱动开发
  • AI崛起后,对使用AI的一些小思考
  • LaTeX 下载安装保姆级教程
  • 异形设备前端适配挑战:条形屏/嵌入式终端的布局弹性与触控热区重构
  • 直播间里的酒旅新故事:内容正在重构消费链路
  • 亚马逊 Vine 计划:评论生态重构与合规运营策略
  • 《UE教程》第一章第九回——地图BGM
  • Kafka运维实战 17 - kafka 分区副本从 1 增加到 3【实战】
  • 减速机:自动化生产线的“精密传动心脏”
  • 网站备案号被注销了,怎么重新备案
  • 博弈论03——混合纳什均衡的收益求法
  • 76.最小覆盖子串
  • 线性回归原理与进阶
  • MySQL数据库 mysql常用命令
  • pvc怎么扩容