# 程序员客栈--Boss后台项目 > 基于Nuxtjs,Element UI,该项目包括客栈主站和技术圈。自动化部署,但是需要手动build并generate才能正常部署,dev分支自动更新到dev环境,master分支自动更新到线上环境 ## Build Setup 建议用yarn保证版本稳定运行 ``` bash # install dependencies $ yarn # serve with hot reload at localhost:20201, local.proginn.com:20201 yarn dev # build $ yarn run build ``` ## 目录结构 ``` bash . ├── LICENSE ├── README.md ├── app.html # app html template ├── assets # static img css │ ├── README.md │ ├── css │ └── img ├── components # components │ ├── README.md │ ├── ver_code.vue │ ├── ws │ └── wx_header.vue ├── dist # useless │ ├── 200.html │ ├── README.md │ ├── _nuxt │ ├── cert │ ├── favicon.ico │ ├── index.html │ └── type ├── layouts # layout │ ├── README.md │ ├── default.vue │ └── opacity_header.vue ├── middleware # middelware useless now │ ├── README.md │ └── authenticated.js ├── mixins # mixins │ ├── getDeviceType.js # deviceType │ ├── group.js │ └── wx.js ├── nuxt.config.js # nuxt config ├── package.json # package.json ├── pages # pages(static router) │ ├── README.md ├── plugins │ ├── README.md │ ├── axios.js # useless │ ├── common.js # common methods │ ├── element.js # element ui inject │ ├── http.js # useless │ └── nuxtAxios.js # nuxt axios config ├── static │ ├── README.md │ └── favicon.ico # favicon ├── store │ ├── README.md │ └── index.js # create store └── yarn.lock # 勿删 ``` ## 开发注意 * 由于测试环境和线上环境cookie键值相同,所以尽量在隐身模式下测试开发环境避免不必要的麻烦 * API交互格式统一application/x-www-form-urlencoded,否者无法访问成功 * 调用API尽量只能使用Nuxtjs本身集成的Axios,使用方式 ``` js async asyncData({ $axios, params, req }) { let id = params.id; let headers = req && req.headers; let res = await $axios.$get( `/api/user/getUserInfo?id=${id}&page=1&size=10`, { headers } ); return { title: `${res.data.info.nickname}的技术圈主页-程序员客栈` }; }, methods: { async getDetail() { let res = await this.$axios.$get( `/api/user/getUserInfo?id=${this.$route.params.id}&page=1&size=10` ); // console.log(res.data) document.title = `${res.data.info.nickname}的技术圈主页-程序员客栈`; if (res) { this.idInfo = res.data; } }, } ``` * layout有两个一个主题的一个空白的的 * vuex 的store中可以存放一些全局变量,例如手机号正则、email正则,当然也可以独立成constants * 静态文件放在assets中,通过@/assets/访问,css中用~@/assets * 后台界面基本就是element ui模板,请求数据使用plugins下的http.js * 使用了一个后台模板vue-admin的theme,不过store中大部分都没用 * 编辑器使用了vue quill *