想重構下 Vue 的目錄結構,希望更標準點,以後項目開發,都可以有一個大概的標準。
搜索了幾篇文章:
https://forum.vuejs.org/t/vue/45718
// 國人寫的這篇好像很不錯
https://github.com/JasonBai007/vue-seed
// 裏面提到的這個
https://linjinze999.github.io/vue-llplatform/request.html
https://itnext.io/how-to-structure-a-vue-js-project-29e4ddc1aeeb
https://vueschool.io/articles/vuejs-tutorials/structuring-vue-components/
https://www.erol.si/2018/03/large-scale-vuejs-application-structure/
// vuex 目錄結構
https://vuex.vuejs.org/guide/structure.html
https://medium.com/3yourmind/large-scale-vuex-application-structures-651e44863e2f
最後總結的目錄,打算以後項目使用:
main.js
App.vue
api - 頁面所有的 API 請求
store - Vuex
mutation-types.js
modules/
index.js
// 這3個也可以放置在 index.js 中,除非特別多內容,我們可以拆分出來(我們項目暫時不使用)
actions.js
mutations.js
getters.js
routes - VueRouter(命名參照 laravel 路由目錄)
index.js
components - 下面是根據參考文章來進行劃分的,我們項目裏不一定要按這個來劃分
ui/
layout/
common/
domain/ - 按域名劃分
views|pages(我打算使用 pages,不是 MVC,只是 vue 頁面組件,用 pages 感覺好點)
assets - 資源(css、images、fonts等)
css
sass
images
fonts
data|json - 一些 json 數據,例如:城市級聯數據。(data 作爲數據來講,本身就是複數,它的單數是:datum,普及下😋)
// 有些第三方 js 庫,不在 node 倉庫中,需要我們直接引入,定義了以下目錄
libs - js 類庫(第三方類庫,只包含 js)
components - js 組件(第三方類庫,包含 js 和 css)
frameworks - js 框架(第三方框架,例如:mui, layui 等)
configs - 配置(我自己項目中,引入的第三方配置放在這裏),例如:
vee-validate.js
// 引入語言包
import zh_CN from '../locales/vee-validate/zh_CN';
export default {
// vee-validate 方式
locale: 'zh_CN',
// i18n 方式
// i18nRootkey: 'validations',
// i18n: new VueI18n({locale: 'zh_CN'}),
dictionary: {
zh_CN
},
validity: true,
};
vue-html5-editor.js
...
extends - 擴展(我自己項目中,引入的第三方配置放在這裏),例如:
vee-validate
add-methods.js
validate.js
directives
filters
mixins
fragments - 有用的代碼段
utils - 公共函數
lang|translations|locales - 語言包(打算使用 lang,同 laravel 一致)
mock - 生成隨機數據(Mock.js),模擬 ajax 請求數據
bus - 總線|更新(這個目錄不懂,我先不寫了)
最終的目錄結構:
main.js
App.vue
api/
store/
mutation-types.js
index.js
modules/
routes
index.js
components
pages
assets
css
sass
images
fonts
data
libs
components
frameworks
configs
extends
directives
filters
mixins
fragments
utils
lang
mock
laravel 框架的前端腳手架,無論是 vue 還是 react,默認生成的 js 代碼都在 resources/js 下,css 等代碼,和 js 平級,也就是和框架中的 lang 和 view 是同級目錄,看了幾個項目中,都是在 resources 下放置了 assets 目錄,來存儲 js 和 css 等其他目錄
此外,對於 laravel 的前端腳手架,php artisan preset bootstrap|vue|react|none,我們還是輕易別使用,尤其是 none,會移除前端腳手架代碼,我看了下還會刪除 public/css 和 public/js 編譯後的文件。
我們還是按上面總結的目錄來重新規劃 vue 代碼,我打算直接在 resources 下創建 vue/、react/ 目錄,因爲項目中,可能2種框架都會使用,且不要將內部的 js 和 css 放到和 lang、views 同級目錄,混亂。
對於 laravel 的 Laravel Mix,我們還是可以使用的,我們完全自己來自定義配置
laravel 前端腳手架源碼目錄,有興趣可以簡單看下源碼:
vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets