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

前端工程化:npmvite

本文为个人学习笔记整理,仅供交流参考,非专业教学资料,内容请自行甄别

文章目录

  • 前言
  • 一、npm
  • 二、vite
    • 2.1、创建项目
    • 2.2、目录结构
    • 2.3、启动项目
    • 2.4、打包项目


前言

  npm是 Node.js 附带的 包管理器,用于安装、管理和发布 JavaScript 包,相当于JAVA中的Maven。而Vite是一个 前端构建工具和开发服务器,它可以用于快速启动前端项目并在生产环境打包优化代码。类似于集成了Maven的Spring Boot脚手架工程。需要安装Node.js,查看Node.js版本:
在这里插入图片描述

一、npm

  npm初始化命令,会生成一个package的json文件:

npm init -y

  安装某个依赖,例如jquery,会在package.json中生成 “dependencies”: { “jquery”: “^x.x.x”},如果加入-a参数则是全局安装。

npm install jquery

  卸载某个依赖,例如jquery:

npm uninstall jquery

  在package.json的script中编写可以运行的脚本进行测试,可以用于启动项目的引导类:

npm run start(start是package.json中自己定义的脚本名称)

在这里插入图片描述
在这里插入图片描述

二、vite

2.1、创建项目

  创建项目脚手架:

npm create vite

在这里插入图片描述
首先输入项目的名称

在这里插入图片描述
选择前端项目的框架

在这里插入图片描述
选择前端项目的语言
在这里插入图片描述
根据命令构建并启动项目

  安装依赖:

npm install

在这里插入图片描述

2.2、目录结构

  生成的项目结构:

  • components下存放vue组件,类似于JAVA的controllerservice目录。
  • App.vue是Vue 项目的根组件。里面可以嵌套其他组件。
  • main.js是主启动类。
  • package.json定义了项目的依赖、脚本、元信息等,类似于JAVA的pom.xml
  • public用于放置放置不会被构建工具处理的静态资源(如 favicon、纯 HTML 文件、图标等),类似于JAVA的resources/staticwebapp
  • assets用于存放图片、字体、SVG 等资源,打包时会被 Vite 处理并优化。
  • index.html是网页的主页面,Vue 会在里面通过 id=“app” 挂载。
  • vite.config.js定义构建配置,比如插件、路径别名、代理服务等。类似于JAVA的application.yml

在这里插入图片描述
  package.json:
在这里插入图片描述
  main.js中的createApp(App).mount('#app'),代表了创建一个 Vue 应用实例,并将根组件 App 渲染到页面上 id 为 app 的 DOM 元素上。这里的App,是App.vue。createApp(App)相当于JAVA中的SpringApplication.run(MainApplication.class, args);
  而.mount('#app')则是将 Vue 应用挂载到页面中 index.html 里的 DOM 元素上,在index.html中定义了:
在这里插入图片描述
  '#app' 指的是这个 HTML 节点。

2.3、启动项目

  使用以下命令启动项目,运行以下命令,执行了package.jsondev的脚本。

npm run dev

  这个网页实际就是App.vue中定义的。
在这里插入图片描述

2.4、打包项目

  使用以下命令打包项目,运行以下命令,执行了package.jsonbuild的脚本。

npm run build

在这里插入图片描述
  项目目录下会生成一个dist文件夹,存放打包后的内容。如果使用git进行项目管理,通常.gitignore中需要设置node_modules dist 忽略提交

http://www.xdnf.cn/news/16909.html

相关文章:

  • 小红书开源dots.ocr:单一视觉语言模型中的多语言文档布局解析
  • CUDA杂记--nvcc使用介绍
  • k8s黑马教程笔记
  • MySQL 索引失效的场景与原因
  • 第二章 矩阵
  • Apple基础(Xcode④-Flutter-Platform Channels)
  • OpenCV轻松入门_面向python(第一章OpenCV入门)
  • 【PDF + ZIP 合并器:把ZIP文件打包至PDF文件中】
  • RabbitMQ面试精讲 Day 8:死信队列与延迟队列实现
  • 反向代理+网关部署架构
  • Flask ORM 模型(轻松版)
  • 如何在不停机的情况下,将MySQL单库的数据迁移到分库分表的架构上?
  • Unity_数据持久化_IXmlSerializable接口
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘scikit-learn’问题
  • ESP32学习-I2C(IIC)通信详解与实践
  • Azure DevOps — Kubernetes 上的自托管代理 — 第3部分
  • GB 44496-2024《汽车软件升级通用技术要求》对行业从业者的变革性影响
  • 13-day10生成式任务
  • 从Docker衔接到导入黑马商城以及前端登录显示用户或密码错误的相关总结(个人理解,仅供参考)
  • 【AI编程工具IDE/CLI/插件专栏】-国外IDE与Cursor能力对比
  • 【openlayers框架学习】九:openlayers中的交互类(select和draw)
  • 【LLM】 BaseModel的作用
  • MySQL面试题及详细答案 155道(021-040)
  • Spring Cloud微服务中的内存泄漏问题定位与解决方案
  • SelectDB数据库,新一代实时数据仓库的全面解析与应用
  • Linux 环境下 Docker 安装与简单使用指南
  • 百度招黑产溯源安全工程师
  • 《软件测试与质量控制》实验报告二 单元测试
  • MSQL-聚簇索引与非聚簇索引的比较
  • Python编程基础与实践:Python文件处理入门