VUE3照本宣科------package.json与vite.config.js
VUE3照本宣科系列导航
前言
👨💻👨🌾📝记录学习成果,以便温故而知新
"VUE3照本宣科"是指照着中文官网和菜鸟教程这两个"本"来学习一下VUE3。以前也学过VUE2,当时只在gitee留下一些代码,却没有记录学习的心得体会,有时也免不了会追忆一下。
以后出现"中文官网"不做特殊说明就是指:https://cn.vuejs.org/;菜鸟教程就是指:https://www.runoob.com/vue3/vue3-tutorial.html
一、package.json
写本专题时,上网搜了"package.json",一开始先入为主的以为是VUE的东西,上VUE的官网去找,结果没找到;然后觉得是node.js的东西,又上node官网去找,结果是"两处茫茫皆不见 "。偶然在网友的文章中看到是npm的东西,然后就找到了npm Docs,里面有关于package.json的介绍。
一来由于是纯英文的介绍,二来是因为内容比较多,所以就只挑zbxk项目中涉及的介绍一下。zbxk项目中package.json文件内容:
javascript
{
"name": "zbxk",
"version": "0.0.0",
"private": true,
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
"format": "prettier --write src/"
},
"dependencies": {
"pinia": "^2.1.6",
"vue": "^3.3.4",
"vue-router": "^4.2.4"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.3.3",
"@vitejs/plugin-vue": "^4.3.4",
"@vue/eslint-config-prettier": "^8.0.0",
"eslint": "^8.49.0",
"eslint-plugin-vue": "^9.17.0",
"prettier": "^3.0.3",
"vite": "^4.4.9"
}
}
1.name
文档上写得很啰嗦,可以认为是项目名称。
另外名称必须小于等于214字符,小写,不得以.或下划线开头,可以作为url的一部分。
2.version
项目版本。
3.private
如果是私有项目,不希望发布到公共 npm 仓库上,可以将 private 设为 true。
4.scripts
指定项目的一些内置脚本命令,这些命令可以通过 npm run 来执行。
在集成开发环境的"资源管理器"的"NPM脚本"会显示这些脚本命令,如下图:
5.dependencies
运行依赖,也就是项目生产环境下需要用到的依赖。
6.devDependencies
开发依赖,项目开发环境需要用到而运行时不需要的依赖,用于辅助开发,通常包括项目工程化工具比如 eslint、prettier与vite等。
其它配置项详情请参看npm Docs官网https://docs.npmjs.com/cli/v10/configuring-npm/package-json#scripts,这里就不啰嗦了。
二、vite.config.js
vite.config.js是vite构建工具的配置文件。Vite 官方中文文档地址https://cn.vitejs.dev/。
zbxk项目中vite.config.js文件内容:
javascript
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.plugins
需要用到的插件数组。Falsy 虚值的插件将被忽略,插件数组将被扁平化(flatten)。
2.resolve.alias
当使用文件系统路径的别名时,请始终使用绝对路径。相对路径的别名值会原封不动地被使用,因此无法被正常解析。
以上是对zbxk项目使用到的配置项的说明。
3.base
开发或生产环境服务的公共基础路径,base的类型是string,默认值"/"。合法的值包括以下几种:
- 绝对 URL 路径名,例如 /foo/
- 完整的 URL,例如 https://foo.com/
- 空字符串或 ./(用于嵌入形式的开发)
重点看一下对编译后index.html的影响。zbxk的默认vite.config.js配置生成的内容:
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title>
<script type="module" crossorigin src="/assets/index-84d03148.js"></script>
<link rel="stylesheet" href="/assets/index-499625e2.css">
</head>
<body>
<div id="app"></div>
</body>
</html>
vite.config.js加上:
javascript
base: './',
后编译生成的内容:
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="./favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title>
<script type="module" crossorigin src="./assets/index-9a6c1f67.js"></script>
<link rel="stylesheet" href="./assets/index-499625e2.css">
</head>
<body>
<div id="app"></div>
</body>
</html>
可以看出引用资源的地方由"/"变成了"./"。
4.mode
类型是string,默认 'development' 用于开发,'production' 用于构建。
在配置中指明将会把 serve 和 build 时的模式 都 覆盖掉。也可以通过命令行 --mode 选项来重写。
这个配置暂时没有发现由什么明显作用,如果以后知道了再来完善。
其它配置就不一一罗列了。
三、VUE3照本宣科系列总结
大致用了7个专题对命令创建的Vue项目做了一个简要介绍,多数的内容是VUE3新特性,少数如内置指令是对以往学习知识的一个梳理。eslint、prettier及package.json是对以前没有在意的插件与配置等做一个浅层次的学习,vite.config.js是对新构建工具的学习。