# 项目目录结构

```
|- project/
  |- docs/
  |- node_modules/
  |- src/
    |- 3rd-libs/
    |- assets/
    |- config/
    |- utils/
    |- base/
    |- components/
    |- modules/
    |- views/
      |- Home.vue
      |- Login.vue
      |- routes.js
    |- i18n.js
    |- router.js
    |- App.vue
    |- index.js
    |- index.html
```

## 目录说明

### 3rd-libs

此目录用于保存`第三方依赖`，所有引入的`第三方依赖`，应在此目录中进行`引入`，并公开`核心接口`，在项目的具体位置，引入此目录中公开的`核心接口`。

> 此目录的设置，可以有助于随时`替换`第三方依赖项

### assets

此目录中保存一些`静态资源文件`

### config

此目录进行配置。

### utils

此目录保存一些业务无关的`工具函数`。

### base

此目录中提供`系统`一些`基础`的能力，例如：网络、存储等。

### components

此目录保存一些`业务无关`的`通用组件`。

### modules

此目录保存`业务模块`。

### views

此目录保存`路由组件`。

## 目录层级关系

以上目录层级，由低到高，基本顺序如下：

1. config
2. utils
3. base
4. components
5. modules
6. views

基本原则是：`高层能引用低层`，但是`低层不能引用高层`

例如：`views`目录能引用其他任意目录的功能，但是其他目录不能引入`views`目录的功能

## 目录深度

目录深度请保持在`2-3`层，以`2`层为佳，`3`层次之，最多`4`层，不能超过`4`层（项目中目录深度，最深最深为4层）。

以下为`错误示例`

```
|-/
  |- modules/
    |- account/
      |- user/
        |- profile/
          |- add/
            |- addForm.js
```

> 目录深度相对于`index.html`文件而言。并非`package.json`
