uniapp 目录
uniapp 目录结构解析
uniapp 的目录结构遵循 Vue.js 项目的规范,同时针对跨平台特性进行了扩展。以下是典型 uniapp 项目的核心目录和文件说明:
根目录结构
pages.json:全局页面路由配置文件,定义页面路径、窗口样式、导航栏等。manifest.json:应用配置,包含 AppID、版本号、权限等原生平台相关配置。App.vue:应用入口组件,可设置全局样式和生命周期。main.js:应用入口文件,初始化 Vue 实例。
关键子目录
pages:存放所有页面组件,每个页面为一个.vue文件,需在pages.json中注册。static:存放静态资源(如图片、字体),会被直接复制到打包目录。components:可复用组件目录,建议按功能模块划分子目录。uni_modules:插件模块目录,通过 HBuilderX 插件市场安装的模块存放于此。common:公共代码目录,通常包含工具函数、常量等。platforms:平台特定代码目录(非必须),存放各平台差异化代码。
特殊目录(条件编译)
wxcomponents:微信小程序自定义组件目录。hybrid:混合模式目录,存放需同时使用 web 和原生能力的代码。nativeplugins:原生插件目录(App 平台专用)。
示例目录树
project/
├── pages/
│ ├── index/
│ │ ├── index.vue
│ │ └── index.scss
│ └── detail/
│ └── detail.vue
├── static/
│ ├── logo.png
│ └── fonts/
├── components/
│ ├── button/
│ └── modal/
├── uni_modules/
├── common/
│ ├── api.js
│ └── utils.js
├── pages.json
├── manifest.json
├── App.vue
└── main.js
目录规范建议
- 页面目录建议使用小写字母和短横线命名(如
user-center)。 - 组件名采用 PascalCase 命名(如
MyComponent.vue)。 - 静态资源按类型分子目录(如图片放
static/images)。 - 路由配置的页面路径需与
pages目录结构严格对应。
条件编译目录
通过目录名后缀实现平台差异化:
pages-index/index-h5.vue:仅 H5 平台使用的页面。static/logo-app.png:App 平台专用图片。components/btn-wechat.vue:微信小程序专用组件。
这种结构设计使 uniapp 能自动识别不同平台的专属资源,在打包时按目标平台筛选文件。







