从0搭建一个vue项目,不使用脚手架从html到vue

前言

        从最开始学习web网页开始,搭建一个网页只需要创建一个html文件对其进行编写dom标签语言即可;后来分离了html,css和js,搭建一个网页开始需要文件夹,文件夹包含了这3类文件以及静态文件,图片,音频,视频......

        到现在开始使用工程化框架搭建网页,vue,react,还有相关的打包工具webpack,vue-cli,vite,这个转变使得构建的网页,功能更加强大,结构更加复杂精细,

        那么这个工程化的过程是怎么变化的,从一个html,到module,src,json,config.js,

开始

  • 使用的构建工具:vite
  • 需要安装的包:vite,vue,@vitejs/plugin-vue
  • 手动生成的文件:index.html, main.js, vite.config.js, App.vue

 

1.新建一个文件夹

新建一个文件夹,然后用vscode打开这个文件夹

在文件夹下新建一个README.md文件(非必要),这里可以添加一些项目描述,

2.新建index.html

添加一个id为app的盒子作为整个项目的容器,

3.npm初始化

打开终端输入npm指令

npm init -y 

这会在文件夹下自动生成一个package.json文件,这是整个项目的核心文件,里面包含了项目中的关键信息,

其中,description字段就是初始化前README.md中的内容,name字段是项目(文件夹)名称,script字段是脚本命令

4.安装相关配置包

执行以下npm命令

npm install vite -D

安装vite工具,-D表示安装在开发环境依赖

npm install vue

安装vue包

npm install @vitejs/plugin-vue

安装vite构建vue的插件

安装完后,整体产生了3个变化,json文件中多了生产环境(dependencies)和开发环境(devDependencies)的依赖字段,多了一个package-lock.json文件和node_modules文件夹,内部包含了项目相关的支持文件

5.构建项目结构

项目下新建一个src文件夹,并在src下新建main.js和App.vue,新建一个vite.config.js文件

6.书写相关文件的内容

先从src中开始,

main.js

import { createApp } from "vue";
import App from "./App.vue";

const app = createApp(App);//注册vue的app实例
app.mount("#app");//将实例挂载到id为app的元素上

App.vue

<template>
  <div>hello world</div>
</template>

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>myVue</title>
</head>
<body>
  <div id="app"></div>
  <!-- 引入入口js文件 -->
  <script type="module" src="/src/main.js"></script>
</body>
</html>

package.json

主要修改以下两个字段:type,和scripts,可以删除main字段

  "type": "module",

  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
{
  "name": "myvue",
  "version": "1.0.0",
  "description": "从零开始搭建一个vue项目",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "vite": "^5.3.1"
  },
  "dependencies": {
    "@vitejs/plugin-vue": "^5.0.5",
    "vue": "^3.4.30"
  }
}

其中type字段是必要的(没有将产生错误),以下是官方原话,这表示采用模块化打包

scripts是脚本命令,作用分别是 开发项目预览,打包项目,预览打包项目

vite.config.js

import { defineConfig } from "vite";
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [
    // 使用vite构建vue的插件
    vue(),
  ],
})

注意这个js文件的作用是提供本地服务搭建vue(类似后端的代码),它实在命令行执行的

运行一下项目可以看到命令行执行这个js的结果,插件就是一个可执行的函数

7.运行项目

配置完以上的文件就可以运行项目了,上面已经运行成功了一次,

npm run dev

点击这个链接查看项目

成功显示结果,到此,一个简单的vue项目就搭建完成了,

结语

        但在真实的项目中,仅仅只有这些配置还远远不够,开发时使用脚手架搭建可以快速的让我们编辑项目核心的代码,这里只是展示一个vue项目是如何产生的,深化对vue框架的了解

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

运维.云技术学习.基于应用服务网格的灰度发布(上:理论基础篇)

运维专题 基于应用服务网格的灰度发布&#xff08;上&#xff1a;理论基础篇&#xff09; - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAdd…

S-Clustr(影子集群)V3 高并发,去中心化,多节点控制

S-Clustr 项目地址:https://github.com/MartinxMax/S-Clustr/releases/tag/S-Clustr-V3.0 Maptnh Не ограничивайте свои действия виртуальным миром. GitHub: Maptnh Jay Steinberg Man kann die Menschen, die man hasst, in d…

Arduino平台软硬件原理及使用——开源库的使用

文章目录&#xff1a; 一、库文件的下载及导入 二、库文件源代码说明 三、库文件应用举例 一、库文件的下载及导入 有关arduino开源库的导入有两种方案&#xff1a; 1.第一种方案需要借助arduino.cc网站来进行查询下载&#xff0c;然后在Arduino软件中进行导入。 2.第二种方案则…

【学习计划】文献阅读:癌症生物标志物文献综述

Cancer biomarkers: Emerging trends and clinical implications for personalized treatment 标题英文&#xff1a;Cancer biomarkers: Emerging trends and clinical implications for personalized treatment 标题中文&#xff1a;癌症生物标志物 &#xff1a; 个性化治疗的…

Axure RP 9 安装详细笔记

一、下载 1.官网下载地址 Axure RP 9 MAC正式版&#xff1a;https://axure.cachefly.net/versions/9-0/AxureRP-Setup-3740.dmgAxure RP 9 WINDOWS正式版&#xff1a;https://axure.cachefly.net/versions/9-0/AxureRP-Setup-3740.exe2.网盘下载 链接&#xff1a;https://pa…

计算机SCI期刊,中科院3区,1个月录用,易过审

一、期刊名称 Visual Computer 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;计算机科学 影响因子&#xff1a;3.5 中科院分区&#xff1a;3区 三、期刊简介 视觉计算机发表有关捕获、识别、建模、分析和生成形状和图像的所有研究领域的文章。 计算机…

【ai】tx2 nx: yolov4-triton-tensorrt 成功部署server

isarsoft / yolov4-triton-tensorrt运行发现插件未注册? 【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 【ai】tx2 nx: jetson Triton Inference Server 运行YOLOv4 对main 进行了重新构建 【ai】tx2 nx :ubuntu查找NvInfer.h 路径及哪个包、查找符号【ai】tx2…

基于SpringBoot+Vue电商平台系统(带 1w+字文档)

基于SpringBootVue电商平台系统(带 1w字文档) 本课题研究和开发电商平台&#xff0c;让安装在计算机上的该系统变成管理人员的小帮手&#xff0c;提高商品交易信息处理速度&#xff0c;规范商品交易信息处理流程&#xff0c;让管理人员的产出效益更高。 项目简介 基于SpringBo…

go语言day06 数组 切片

数组 : 定长且元素类型一致,在索引逻辑上连续存储,数组的内存地址是存储的第一个元素的内存地址 几种创建方式: 仅声明 var nums [ 3 ] int 声明并赋值 var nums [ 2 ] string {"武沛齐","alex"} 声明并按下标赋值 var nums [ 3 ] int {0:88,2:1 } 省略…

如何一步一步将Python中的应用打包成安卓的APK安装包文件

一、首先&#xff0c;按照如下链接操作 Python 应用打包成 APK【全流程】_python打包成apk-CSDN博客 二、运行 buildozer init会报错buildozer命令找不到&#xff0c;明明已经安装 解决方法&#xff1a; 这里重新创建一个conda环境 Installation — Buildozer 0.11 docum…

西门子840dsl机床仿真软件配置opcua说明

需要的安装包如下&#xff0c;可在百度网盘中下载 主软件包&#xff1a;sinutrain-v4.7-ed4&#xff08;也可在官网中下载最新版本&#xff09; 用户文件&#xff1a;UserDataBase 授权sinutrain&#xff1a;Sim_EKB_Install_2021_06_22 链接&#xff1a;https://pan.baidu.c…

13款最佳“IP地址管理”软件,哪个是你的最爱?

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 中午好&#xff0c;我的网工朋友。 随着网络规模的不断扩展和复杂化&#xff0c;IP地址的管理变得越来越复杂。一个不小心&#xff0c;就可能出现…

仓库管理系统09--修改用户密码

1、添加窗体 2、窗体布局控件 UI设计这块还是传统的表格布局&#xff0c;采用5行2列 3、创建viewmodel 4、前台UI绑定viewmodel 这里要注意属性绑定和命令绑定及命令绑定时传递的参数 <Window x:Class"West.StoreMgr.Windows.EditPasswordWindow"xmlns"http…

vxe-表尾单元格进行合并后更改其表尾背景颜色

1.场景 在vxe-table的官网API中可以使用footer-cell-class-name给单元格添加背景颜色或者其他样式&#xff0c;但是本人场景进行了表尾合并的操作&#xff1b;参考API进行更改背景颜色失败&#xff1b; 2.解决 利用表尾css类名的区别&#xff0c;用子类选择器进行对应的选择设…

生产环境出现问题,测试人如何做工作复盘?

很多时候我们能把大部分的Bug或一些部署等问题在业务上线之前就解决了&#xff0c;但由于某些因素&#xff0c;线上问题还是时而出现&#xff0c;影响业务生产甚至是公司效益。 避免线上问题的发生以及线上问题及时处理是测试人员的一项重要职责&#xff0c;如何快速地处理&am…

Pycharm 启动 Django项目 —— python篇

1、打开你的工程&#xff0c;在菜单栏里找到Run-->Edit Configurations 2、在打开的对话框里边选择Python&#xff0c;点击号 3.选择Python 4.出现了一个新的项Unnamed&#xff0c;你可以把它改名叫debug&#xff0c;好听一点 5.脚本选择你网站的manage.py&#xff0c;脚本参…

UDP-Hunter:针对各种UDP服务的网络安全评估工具

关于UDP-Hunter UDP-Hunter是一款功能强大的UDP服务安全评估工具&#xff0c;该工具可以覆盖IPv4和IPv6协议。 UDP扫描一直是一项缓慢而痛苦的工作&#xff0c;如果你打算在UDP的基础上添加IPv6支持&#xff0c;那么可选的工具就会非常有限。UDP-Hunter是一个基于Python的开源…

车辆数据的提取、定位和融合 精确车辆定位(其三.一 共十二篇)随机复合

第一篇&#xff1a; System Introduction 第二篇&#xff1a;State of the Art 第三篇&#xff1a;localization 第四篇&#xff1a;Submapping and temporal weighting 第五篇&#xff1a;Mapping of Point-shaped landmark data 第六篇&#xff1a;Clustering of landma…

2024.6.25力扣刷题记录-周赛403

目录 一、3194. 最小元素和最大元素的最小平均值 二、3195. 包含所有 1 的最小矩形面积 I 三、3196. 最大化子数组的总成本 四、3197. 包含所有 1 的最小矩形面积 II 博主在比赛时只过了前两题。剩下跟着灵神做&#xff0c;来自视频&#xff1a; 【状态机 DP【力扣周赛 403…

策略模式-通过枚举newInstance替代工厂

策略模式-使用枚举newInstance 前言一、枚举类&#xff1a;MarkCheckDataTypeEnum二、抽象类&#xff1a;AbstractMarkChecker三、检查类&#xff1a;MarkPeopleChecker四、demo演示总结 前言 很久没写文章了~~ 吐槽下&#xff1a;入职新公司后&#xff0c;基本在搬砖&#xf…