vue项目结构分析
前言
在我目前的工中很少自己动手搭建一个项目,所以对于开发开始前的项目搭建以及项目各项配置相对理解的不够透彻。这次需要开发一个运行在终端上(类似ATM机的操作)的售楼签约系统。由于 UI 的不适配决定从头开始创建一个新项目。于是在此对项目的创建和配置做一个总结
创建 vue 项目可以有多种方式,这里介绍脚手架创建方式
全局安装
vue-cli
:1
2
3npm install -g @vue/cli
OR
yarn global add @vue/cli创建一个项目:
1
2// 进到你希望项目放到的那个文件夹目录下,然后运行如下命令
vue create XXX-XXX (项目名称)运行完创建命令后会出现选择预设的选项,我这里选的是
manually select features
,然后选择了Babel
、Router
、Vuex
、CSS Pre-processors
、Lint
这些插件,并选择在创建单独的文件用于配置这些插件。创建vue项目更多详细的内容可以访问 vue 脚手架创建项目
项目创建完成后,默认的目录展示如下:
主要分析有以下这些文件,点击文件可快速定位文件的位置
- .browserslistrc
- .eslintrc.js
- gitignore
- README.md
- babel.config.js
- package.json
- vue.config.js
- env配置环境变量文件
- .prettierrc
结构分析
具体的src
和public
文件夹等,这里不做过多的介绍,主要介绍根目录下的相关配置文件的内容
.browserslistrc
该文件的作用是根据提供的目标浏览器的环境,来智能添加 css 前缀,js 的 polyfill 垫片,来兼容旧版本浏览器。避免不必要的兼容代码,以提高代码的编译质量。
默认创建的项目中,.browserslistrc
文件内容如下:
1 | > 1% |
分别代表1.全球超过 1%人使用的浏览器;2.所有浏览器兼容到最后两个版本,再以前的就不兼容;3.不兼容已经在市面下架“死去”的浏览器。以下是更多相关的配置和介绍:
例子 | 说明 |
---|---|
> 1% | 全球超过 1%人使用的浏览器 |
> 5% in US | 指定国家使用率覆盖 |
last 2 versions | 所有浏览器兼容到最后两个版本根据 CanIUse.com 追踪的版本 |
Firefox ESR | 火狐最新版本 |
Firefox > 20 | 指定浏览器的版本范围 |
not ie <=8 | 方向排除部分版本 |
Firefox 12.1 | 指定浏览器的兼容到指定版本 |
unreleased versions | 所有浏览器的 beta 测试版本 |
unreleased Chrome versions | 指定浏览器的测试版本 |
since 2013 | 2013 年之后发布的所有版本 |
.eslintrc.js
这个文件主要用于配置项目的 eslint 校验,对于一个团队来说,每个人有每个人写代码的风格和习惯,有人喜欢结尾加分号,有人不加,有人习惯使用双引号,有人习惯单引号,当然这些不足以影响项目的运行,但是 eslint 还可以配置更加重要的规范,来统一代码风格和预防一些代码隐患。所以这个文件相对团队开发来说是比较重要的。
.eslintrc.js
文件默认导出一个对象,以下是创建 vue 项目后 eslintrc 文件的默认内容,结尾处会提供一个更详细的 eslint 配置文件。
1 | module.exports = { |
rules 配置规则格式
规则格式是<规则名称>: <告警级别>
,告警级别分为三种:
- “0”表示忽略问题,等同于”off”;
- “1”表示给出警告,等同于”warn”;
- “2”表示直接报错,等同于”error”。
更多的 ESLint 配置可以前往 ESLint 中文网 查看
gitignore
该文件正如其名字的意思,告知 git 那些文件或文件夹不需要添加到版本管理中。内容如下:
1 | .DS_Store |
README.md
这个文件就是项目的介绍文件,使用 markdown 语法。
不清楚markdown语法的可以访问markdown基本语法
babel.config.js
Babel 是一个 JavaScript 编译器,可以对 JavaScript 文件进行转码,类似的有 ES6 转为 ES5 兼容不同的浏览器。
babel.config.js
是 babel 的配置文件,presets
字段设定转码规则,此处 @vue/cli-plugin-babel/preset
就是规则。
1 | module.exports = { |
了解更多的Babel相关配置可以访问Babel 配置文件
package.json
package.json
文件提供了很多项目相关的信息,主要有这个项目所需要的各种模块;以及项目的配置信息(比如名称、版本、许可证等元数据);还可以配置一些简化script
执行脚本。项目中json文件是不能添加注释的,需要删除相关注释噢
1 | { |
额外的文件
除了上述vue-cli
创建项目后默认生成的文件外,我们在开发过程中还需要很多配置文件,且都是在根目录中自己创建的。下面介绍几个相关文件
vue.config.js
这个文件表示 vue 的配置文件,像一些简单的前端服务运行的端口号,是否自动打开,代理地址等。下面是一些简单的配置
1 | const path = require('path') // 导入Node的path模块 |
更多vue的配置可以访问 vue 配置参考
.env.development、.env.production 配置文件
这里可以自己创建以上配置文件,用于配置不同环境下的环境变量,其中
.env.development
表示开发环境的环境变量.env.production
表示生产环境的环境变量.env.mock
表示 mock 运行状态下的环境变量
这些环境变量可以在全局使用,使用方法就是process.env.XXXX
。其中 xxxx 表示变量名
由于上面在vue.config.js
配置文件中proxy
代理配置的属性target
的值使用了process.env.VUE_APP_PROXY_URL
变量。所以我在env.development
文件里定义如下变量:
1 | VUE_APP_PROXY_ROOT = 'http://192.168.2.25:6060/' |
于是在开发过程中,向 /api/user
地址发送请求就等同于向 http://192.168.2.25:6060/user
地址发送请求
.prettierrc文件
Prettier
是一个代码格式化工具,可以在开发过程中,使代码格式化成你想要的风格和规范。
开发前端的过程中,我们要求开发人员都在VSCode
中装入Prettier
插件,方便格式化。与 ESLint 一样,为了统一代码风格和规范,所以 Prettier 也是在团队开发中重要的一员。
.prettierrc
文件就是配置使用 Prettier 格式化代码的方式(注意该文件中的注释需要删除后才会生效)
1 | { |
更多prettier的配置内容请访问Prettier 配置
更多的项目内容可以查看以下 github 地址
https://github.com/He-Huang/vue-project-structure