Skip to content

目录结构

Server 端

bash
Server
使用 Thinkphp8 多应用推荐目录结构
├─app(应用目录)
  ├─admin
  ├─api
  └─common

├─config(配置目录)

├─database(数据库迁移文件-Phinx)

├─extend(扩展目录)

├─install(安装器源代码,此目录不一定存在)

├─public(运行目录)
  ├─npm-install-test(npm install 测试项目)
  ├─static
  ├─fonts(一些字体)

  └─images(一些图片)

  └─storage(上传的文件保存在这里)

├─runtime(运行时目录,缓存、日志等)

├─web(WEB端源代码,见下文详叙)
  .env-example(env 配置示例)
  .gitattributes
  .gitignore
  .travis.yml
  CHANGELOG.md(更新日志)
  composer.json
  README.md
└─ think(命令行入口文件)

更多细节,您还可以参考 TP文档中的目录结构,请翻阅多应用模式

Web 端

bash
web
使用经典目录结构设计,并合理优化
├─public(公共文件)
├─src
  App.vue
  main.ts

  ├─api(所有接口相关)
  common.ts(公共 Url 定义和公共请求方法)

  ├─backend(后台接口方法定义)

  └─frontend(前台接口方法定义)

  ├─assets(静态资源)

  ├─components(组件)
  ├─baInput(输入组件封装:常用+图片/文件上传、数组、城市/图标选择、富文本等封装在了一个组件内)

  ├─contextmenu(tabs 右击菜单)

  ├─formItem(表单项,结合 baInput)

  ├─icon(字体图标组件,支持加载本地 svg、阿里、element、awesome)

  ├─table(表格封装)

  ├─mixins(可供模块混入代码到系统的埋点,如云存储,编辑器)

  ├─clickCaptcha 点选文字验证码

  └─terminal(终端)

  ├─lang(所有语言包)
  autoload.ts(语言包按需加载映射表,比如路由 /user/user 需要同时加载 /user/group 的语言包可在此定义)
  globs-en.ts(全局英文语言包)
  globs-zh-cn.ts(全局中文语言包)
  ├─common(公共页面语言包:`t('dirName.pageName.翻译名')`进行调用)
  ├─backend(后台页面语言包:`t('dirName.pageName.翻译名')`进行调用)
  zh-cn.ts(后台公共中文语言包)
  en.ts(后台公共英文语言包)
  ├─frontend(前台页面语言包:`t('dirName.pageName.翻译名')`进行调用)
  zh-cn.ts(前台公共中文语言包)
  └─ en.ts(前台公共英文语言包)

  ├─layouts(布局)
  ├─backend(后台布局)
  components (布局组件)
  container (布局容器组件,内含默认的三种布局方案)
  index.vue (后台布局入口)
  ├─frontend(前台布局)
  components (布局组件)
  container (布局容器组件,内含默认的布局方案)
  user.vue (会员中心布局入口)
  └─common(公共布局组件)

  ├─router(路由)
      static.ts(静态路由配置)

  ├─stores(状态商店)
  ├─adminInfo.ts(管理员资料)
  ├─config.ts(布局相关)
  ├─memberCenter.ts(会员中心)
  ├─navTabs.ts(后台顶栏 tab)
  ├─siteConfig.ts(站点配置)
  ├─terminal.ts(终端)
  ├─userInfo.ts(用户资料)

  ├─constant(常量定义)
      cacheKey.ts(缓存 Key)

  └─interface(接口定义)
          index.ts

  ├─styles(样式表)
      app.scss
      index.scss(css 入口文件,main.ts 只导入它就可以了)
      element.scss(element css 覆盖)
      loading.scss
      var.scss(css 变量定义)
      dark.scss(暗黑模式下 css 变量定义)
      mixins.scss(scss mixins function 定义)

  ├─utils(工具库)
      axios.ts(网络请求封装)
      baTable.ts(表格封装)
      build.ts(构建时)
      common.ts(公共方法)
      directives.ts(指令)
      horizontalScroll.ts(横向滚动工具)
      iconfont.ts(图标)
      layout.ts(布局辅助)
      loading.ts(页面加载)
      pageBubble.ts(页面气泡效果)
      pageShade.ts(全局阴影)
      random.ts(随机数、字符串生成)
      router.ts(路由辅助)
      storage.ts(local 缓存、session 缓存封装)
      useCurrentInstance.ts(快速获取当前实例)
|  |      useDark.ts (暗黑模式相关工具函数)
      validate.ts(一些表单验证方法)
      vite.ts(vite运行与编译时)

  └─views(视图)
      ├─backend(后台视图)
      ├─common(公共视图)
      └─frontend(前台视图)

├─types
  .editorconfig(IDE 风格统一配置)
  .env(基础环境变量定义)
  .env.development(开发环境变量定义)
  .env.production(生产环境变量定义)
  .eslintignore(eslint 忽略)
  .eslintrc.js(eslint 配置)
  .prettierrc.js(prettier 配置)
  index.html(入口文件)
  package.json
  README.md
  tsconfig.json(ts 配置)
└─ vite.config.ts(vite 配置)

WebNuxt工程

WebNuxt工程目录结构