它是基于 Vue.js
研发的蓝鲸体系前端分离工程的单页面应用模板(BKUI-CLI),包括了:
npm install
配置指定域名
127.0.0.1 域名
注意:运行之前,请检查配置文件**.babelrc**、eslintrc.js等以.开头的配置文件是否存在。部分操作系统会默认隐藏这类文件,导致在推送到代码仓库时漏掉,最终影响部署结果。
npm run dev
开发域名及端口的配置都可在
bk.config.js
中修改
当前代码仅仅是应用前端,作为前后端分离架构,还需要后端服务,前后端以ajax+json进行数据处理,因此,需要
env.js
,修改development.BKPAAS_APP_ID
,用于本地开发,线上部署时会自动注入env.js
中development
的AJAX_URL_PREFIX
字段,作为接口的url前缀env.js
中stag
方法里的的AJAX_URL_PREFIX
字段,作为接口的url前缀env.js
中production
方法里的的AJAX_URL_PREFIX
字段,作为接口的url前缀打开首页,前端会以/user 来发起用户信息请求,如果没登录会重定向回登录页面 整个框架自带登录实现,在刚打开时,如果没有登录会直接跳到登录页,如果打开后,登录过期(接口返回401状态)会弹出登录窗口
####### 用户登录配置
main.js
入口会首先进行用户鉴权,如果没有用户信息,会跳转至登录页面。
####### 登录地址配置
本地开发需要修改根目录下env.js
配置 development.BK_LOGIN_URL
与 development.BKPAAS_APP_ID
,线上部署会自动注入
####### 登录鉴权
本地登录,会在本地服务 pass-server/middleware/user.js
转发登录接口请求,登录接口在 env.js
里面的 development.BK_LOGIN_URL
注入
需要后端接口在 /user
路径下实现获取当前登录用户的接口, 接口规范如下
{
"code": 0,
"data": {
"bk_username": "test",
"avatar_url": ""
},
"message": "用户信息获取成功"
}
详情查看MDN https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
npm run build
使用 bkui-cli
初始化后,项目目录结构如下:
|-- ROOT/ # 项目根目录
|-- .babelrc # babel 配置
|-- .eslintignore # eslintignore 配置
|-- .eslintrc.js # eslint 配置
|-- .browserslistrc # 编译代码兼容浏览器配置
|-- env.js # 项目启动配置的环境变量等
|-- .bk.config.js # 🌟项目编译配置文件 提供 devServe & mockServer &生产包功能集合
|-- .gitignore # gitignore 配置
|-- README.md # 工程的 README
|-- index-dev.html # 本地开发使用的 html
|-- index.html # 构建部署使用的 html
|-- package-lock.json # package-lock file
|-- package.json # package.json,我们在提供了基本的 doc, dev, build 等 scripts,详细内容请参见文件
|-- postcss.config.js # postcss 配置文件,我们提供了一些常用的 postcss 插件,详细内容请参见文件
|-- paas-server/ # 🌟可部署运行编译后代码的node服务
| |-- middleware # 公共的中间件
| |-- user.js # 登录中间件
| |-- index.js # 启动服务入口
|-- src/ # 🌟实际项目的源码目录
| |-- App.vue # App 组件
| |-- main.js # 主入口
| |-- public-path.js # __webpack_public_path__ 设置
| |-- api/ # 对 axios 封装的目录
| | |-- cached-promise.js # promise 缓存
| | |-- index.js # axios 封装
| | |-- request-queue.js # 请求队列
| |-- common/ # 项目中常用模块的目录
| | |-- auth.js # auth
| | |-- bkmagic.js # bk-magic-vue 组件的引入
| | |-- bus.js # 全局的 event bus
| | |-- demand-import.js # 按需引入 bk-magic-vue 的组件
| | |-- fully-import.js # 全量引入 bk-magic-vue 的组件
| | |-- preload.js # 页面公共请求即每次切换 router 时都必须要发送的请求
| | |-- util.js # 项目中的常用方法
| |-- components/ # 项目中组件的存放目录
| | |-- auth/ # auth 组件
| | | |-- index.css # auth 组件的样式
| | | |-- index.vue # auth 组件
| | |-- exception/ # exception 组件
| | |-- index.vue # exception 组件
| |-- css/ # 项目中通用的 css 的存放目录。各个组件的样式通常在组件各自的目录里。
| | |-- app.css # App.vue 使用的样式
| | |-- reset.css # 全局 reset 样式
| | |-- variable.css # 存放 css 变量的样式
| | |-- mixins/ # mixins 存放目录
| | |-- scroll.css # scroll mixin
| |-- images/ # 项目中使用的图片存放目录
| | |-- 403.png # 403 错误的图片
| | |-- 404.png # 404 错误的图片
| | |-- 500.png # 500 错误的图片
| | |-- building.png # 正在建设中的图片
| |-- router/ # 项目 router 存放目录
| | |-- index.js # index router
| |-- store/ # 项目 store 存放目录
| | |-- index.js # store 主模块
| | |-- modules/ # 其他 store 模块存放目录
| | |-- example.js # example store 模块
| |-- views/ # 项目页面组件存放目录
| |-- 404.vue # 404 页面组件
| |-- index.vue # 主入口页面组件,我们在这里多使用了一层 router-view 来承载,方便之后的扩展
| |-- example1/ # example1 页面组件存放目录
| | |-- index.css # example1 页面组件样式
| | |-- index.vue # example1 页面组件
| |-- example2/ # example2 页面组件
| | |-- index.css # example2 页面组件样式
| | |-- index.vue # example2 页面组件
|-- static/ # 静态资源存放目录,通常情况下, 这个目录不会人为去改变
| |-- lib-manifest.json # webpack dll 插件生成的文件,运行 npm run dll 或者 npm run build 会自动生成
| |-- lib.bundle.js # webpack dll 插件生成的文件,运行 npm run dll 或者 npm run build 会自动生成
| |-- images/ # 图片静态资源存放目录
| |-- favicon.ico # 网站 favicon
npm i
如果没有commitlint.config.js,执行以下语句
echo "module.exports = {extends: ['@commitlint/config-conventional']};" > commitlint.config.js
npx husky add .husky/commit-msg
npx --no-install commitlint --edit "$1"
生成如下文件#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx --no-install commitlint --edit "$1"
package.json 新增lint-staged配置
"lint-staged": {
"*.{vue,js,jsx}": [
"eslint --fix --ext .vue,.js,.jsx"
]
}
npx husky add .husky/pre-commit
npx lint-staged
生成如下文件#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx lint-staged
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。