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

Vite学习之模式

在安装了 Vite 的项目中,可以在 npm scripts 中使用 vite 可执行文件,下面是通过脚手架创建的 Vite 项目中默认的 npm scripts:

启动开发服务器(dev命令)——vite

package.json

{"scripts": {"dev": "vite --mode env.local","dev-server": "vite --mode dev", "serve:dev": "vite preview --mode dev","serve:prod": "vite preview --mode prod",}
}

构建命令(build命令)——vite build

使用 Node.js 运行 Vite 的构建命令,并手动设置 Node.js 的老生代内存限制为 8 GB,以确保在构建大型项目时有足够的内存可用。
其中“./node_modules/vite/bin/vite.js build”相当于vite build
–max_old_space_size=8192 指定了 Node.js 的老生代(old space)内存限制为 8192 MB(即 8 GB)。

"build:local": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build",
"build:dev": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode dev",
"build:test": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode test",
"build:stage": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode stage",
"build:prod": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode prod",
"preview": "pnpm build:local && vite preview",

下面是对这条命令的详细解释:

node:这是启动 Node.js 应用程序的命令。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,允许你在服务器端运行 JavaScript 代码。
–max_old_space_size=8192:这是一个传递给 Node.js 的命令行参数,用于设置老生代(old space)内存的最大限制。老生代是 V8 引擎内存管理中的一个区域,用于存储长期存活的对象。默认情况下,Node.js 会根据可用系统内存自动调整这个限制,但在某些情况下,你可能需要手动设置它,以避免因内存不足而导致的构建失败。这里的 8192 表示将老生代的最大内存限制设置为 8192 MB(8 GB)。
./node_modules/vite/bin/vite.js:这是 Vite 构建工具的入口文件路径。node_modules 是 Node.js 项目中用于存放所有依赖包的文件夹。这里指定了 Vite 包的 bin 文件夹下的 vite.js 文件作为执行文件。这意味着你正在运行 Vite 的命令行界面(CLI)。
build:这是传递给 Vite CLI 的命令,用于触发项目的构建过程。Vite 是一个前端构建工具和开发服务器,专注于提供极快的冷启动和即时热模块更新(HMR)。build 命令会根据项目的配置文件(如 vite.config.js)来打包和优化你的项目代码,使其更适合在生产环境中使用。

其他命令

"i": "pnpm install",
// typescript语法检查
"ts:check": "vue-tsc --noEmit",
//删除node_modules文件
"clean": "npx rimraf node_modules",
"clean:cache": "npx rimraf node_modules/.cache",
//格式相关
"lint:eslint": "eslint --fix --ext .js,.ts,.vue ./src",
"lint:format": "prettier --write --loglevel warn \"src/**/*.{js,ts,json,tsx,css,less,scss,vue,html,md}\"",
"lint:style": "stylelint --fix \"./src/**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
"lint:lint-staged": "lint-staged -c "

clean命令
npx rimraf node_modules 这个命令是在使用 Node.js 开发时,用于删除项目中的 node_modules 文件夹的命令。这个命令结合了 npx 和 rimraf 两个工具。

npx:npx 是 npm 包执行器的一个工具,它允许你执行 npm 包中的命令,而不需要全局安装这个包。这意味着你可以临时使用某个包,而不需要在你的系统中全局安装它。
rimraf:rimraf 是一个 UNIX 命令 rm -rf 的跨平台实现,用于递归地删除文件和文件夹,且不会询问确认。rm -rf 命令在 UNIX/Linux 系统中非常强大,能够强制删除指定文件或目录及其内容,而 rimraf 则是这个命令在 Windows 和其他操作系统上的一个安全替代品。
结合起来,npx rimraf node_modules 命令的作用是:使用 npx 临时调用 rimraf 工具,来删除当前项目目录下的 node_modules 文件夹及其所有内容。这个操作通常在你需要重新安装项目依赖,或者清理项目环境时非常有用。

简单来说,这个命令的目的是为了快速、安全地删除项目中的 node_modules 文件夹,以便进行后续的依赖安装或其他操作。

dev 命令 & build 命令

默认情况下,dev 命令 (开发服务器) 运行在 development (开发) 模式,而 build 命令则运行在 production (生产) 模式。
这意味着当执行 vite build 时,它会自动加载 .env.production 中可能存在的环境变量:

  • dev命令对应development模式
  • build命令对应production模式
# .env.production
VITE_APP_TITLE=My App

在你的应用中,你可以使用 import.meta.env.VITE_APP_TITLE 渲染标题。

在某些情况下,若想在 vite build 时运行不同的模式来渲染不同的标题,你可以通过传递 --mode 选项标志来覆盖命令使用的默认模式。例如,如果你想在 staging (预发布)模式下构建应用:

vite build --mode staging

还需要新建一个 .env.staging 文件:

# .env.staging
VITE_APP_TITLE=My App (staging)

由于 vite build 默认运行生产模式构建,你也可以通过使用不同的模式和对应的 .env 文件配置来改变它,用以运行开发模式的构建:

# .env.testing
NODE_ENV=development

NODE_ENV 和 模式

需要注意的是,NODE_ENV(process.env.NODE_ENV)和模式是两个不同的概念。
以下是不同命令如何影响 NODE_ENV 和模式:

CommandNODE_ENVMode
vite build“production”“production”
vite build --mode development“production”“development”
NODE_ENV=development vite build“development”“production”
NODE_ENV=development vite build --mode development“development”“development”

NODE_ENV 和模式的不同值也会反映在相应的 import.meta.env 属性上:

Commandimport.meta.env.PRODimport.meta.env.PROD
NODE_ENV=productiontruefalse
NODE_ENV=developmentfalsetrue
NODE_ENV=otherfalsetrue
Commandimport.meta.env.MODE
–mode production“production”
–mode development“development”
–mode staging“staging”

.env 文件中的 NODE_ENV

NODE_ENV=… 可以在命令中设置,也可以在 .env 文件中设置。如果在 .env.[mode] 文件中指定了 NODE_ENV,则可以使用模式来控制其值。不过,NODE_ENV 和模式仍然是两个不同的概念。

命令中使用 NODE_ENV=… 的主要好处是,它允许 Vite 提前检测到该值。这也使你能够在 Vite 配置中读取 process.env.NODE_ENV,因为 Vite 只有在解析配置之后才能加载环境变量文件。


http://www.mrgr.cn/news/63351.html

相关文章:

  • Ballman_ford 的应用(有限边的最短路问题)LeetCode787.K站中转内最便宜航班
  • Vue3.js - 计算属性监视属性
  • 408——计算机网络(持续更新)
  • 【主机游戏】塔尼蚀:神之堕落 游戏介绍
  • 【第一个qt项目的实现和介绍以及程序分析】【正点原子】嵌入式Qt5 C++开发视频
  • 如何打开/关闭 GitLab 的版本检查功能?
  • AI实践-PyTorch-CNN-手写数字识别
  • 多线程在打包工具中的运用
  • 5分钟搞定:Spring AI支持SpringBoot快速构建人工智能AI应用_springai_springboot_AI应用
  • jlink识别不到gd32@
  • 连续11年领跑行业 凯迪仕智能锁双11再次稳居全渠道销量第一
  • 鸿蒙HarmonyOS应用开发者(基础+高级)认证
  • jmeter结合ansible分布式压测--准备工作
  • 青少年编程与数学 02-003 Go语言网络编程 03课题、网络编程协议
  • 通义灵码上新功能:用代码画流程图
  • 仓库物品带下拉提示搜索与开单自定义数量和备注带提交反馈单页功能
  • 充电宝哪一款最实用?2024年推荐五款性价比最高选择,附选购攻略
  • R语言贝叶斯
  • LeetCode 热题 100之二叉树
  • 语音IC方案,在交通信号灯语音提示器的应用解析,NV040D
  • T10打卡—数据增强
  • 一文了解运维监控体系的方方面面
  • 低压电容补偿不用时会有电流损耗吗?
  • 力扣11.1
  • 创建线程池时为什么不建议使用Executors进行创建
  • VMware Workstation 17.0虚拟机安装Ubuntu Server 22.04.5 LTS并配置SSH与XFTP详细过程