A Vue.js project
# install dependencies
npm install
# 在localhost:8080启动本地调试
npm run serve
# 打包成开发机环境的代码
npm run pack
# 为不同开发机环境打包代码
npm run pack --server=开发机名称(在fet.config.json中的servers里面配置,详细见下面)
# 发布到对应的开发机
- 可以直接在命令行运行 `npm run pack --server=serverName && fet sync serverName`
- 也可以在package.json里面配置scripts`npm run pack --server=serverName && fet sync serverName`,然后运行该命令,建议用第二种方式
# 打包线上代码
npm run build
# 打包线上代码并生成分析报告
npm run build:report
# run unit tests
npm run test:unit
{
"servers": {
"serverName": { // 服务器名称
"host": "1.1.1.1", // sync到远程的服务器ip
"domain": "//static.example.com", // 服务器对应的域名
"port": 22, // 服务器的ssh端口
"local": "./", // sync那个目录下面的文件,默认是当前目录下面
"path": "/usr/local/share/fet-iview-temp", // sync到服务器的那个地址
"sudo": false, // 是否开启sudo权限
"user": "sshName", // 登录服务器的ssh账号,默认获取电脑名称。
"include": ["dev"] // 需要传到服务器的文件
}
}
}
├── .browserslistrc // 浏览器兼容范围
├── .editorconfig // 通用编辑器配置
├── .env.joint // 联调环境的变量设置
├── .eslintignore // 忽略eslint检查的文件配置
├── .eslintrc.js // eslint配置
├── .gitignore // git不追踪管理的文件配置
├── README.md // 项目说明
├── babel.config.js // babel配置
├── config // 构建配置
│ ├── index.js
│ ├── vue.config.dev.js // 本地开发环境配置
│ ├── vue.config.joint.js // 联调环境配置
│ ├── vue.config.prd.js // 生产环境配置
│ └── vue.config.test.js // 单元测试环境配置
├── fet.config.js // 打包环境配置
├── index.html
├── package-lock.json
├── package.json
├── postcss.config.js // postcss配置
├── src // 业务源码
│ ├── App.vue // 根实例App
│ ├── assets // 存放需编译的静态资源目录, 如:图片, svg, font, 视频, 音频等
│ │ └── logo.png
│ ├── components // 公共组件
│ │ └── grid // 组件由文件夹包裹, index导出
│ │ ├── Grid.vue
│ │ ├── index.js
│ │ └── store.js
│ ├── config // 存放插件的功能配置
│ │ ├── index.js // 插件功能配置
│ │ └── interceptors // 存放插件拦截器, 由index导出
│ │ ├── axios.js // axios拦截器
│ │ ├── index.js // index导出
│ │ └── router.js // 路由拦截器
│ ├── directives // 存放指令
│ │ ├── highlight.js // 具体指令文件
│ │ └── index.js // 将需要全局注册的指令导入到index
│ ├── filters // 存放过滤器
│ │ ├── daterange.js // 具体过滤器文件
│ │ └── index.js // 将需要全局注册的过滤器导入到index
│ ├── main.js // 入口文件, 程序的入口
│ ├── mixins // 存放混入
│ │ └── modal.js // 具体混入文件
│ ├── mock // 存放本地mock配置
│ │ └── index.js // 由index导出
│ ├── modules // 存放页面, 层级根据项目菜单划分
│ │ └── moduleA // 一级目录
│ │ └── pageA // 页面A
│ │ ├── children // 拆分的子页面,
│ │ │ ├── a.vue // 子页面a
│ │ │ └── b.vue // 子页面b
│ │ ├── components // 页面内拆分的组件
│ │ │ ├── button.vue // button组件
│ │ │ └── list.vue // list组件
│ │ ├── index.vue // 页面入口文件
│ │ └── store // 页面需要store管理时, 动态注册的store配置
│ │ ├── actions.js // action配置
│ │ ├── childrenAModule.js // 子页面A的store配置
│ │ ├── childrenBModule.js // 子页面B的store配置
│ │ └── index // index导出
│ ├── plugins // 存放插件
│ │ ├── api.js // 整合config和service配置生成$api对象, 每个key对应一个接口请求函数
│ │ ├── axios.js // 利用config配置将axios实例化为$axios, 用于网络请求
│ │ ├── const.js // 整合config和service配置生成$const, 每个key对应一个常量配置
│ │ ├── inject.js // 将需要挂载到vue实例上的插件导入
│ │ ├── router.js // 整合config和route的配置实例化路由
│ │ └── store.js // 整合config和service配置实例化store
│ ├── routes // 存放路由配置
│ │ └── index.js // index导出
│ ├── service // 存放插件业务配置
│ │ ├── api // api配置
│ │ │ ├── common.js // 分类为common的api
│ │ │ └── index.js // index导出
│ │ ├── const // 常量配置
│ │ │ ├── app.js // 分类为app的常量
│ │ │ └── index.js // index导出
│ │ └── store // 全局store配置
│ │ └── common // 根级的store配置
│ │ ├── actions.js // action
│ │ ├── getters.js // getters
│ │ ├── index.js // index导出
│ │ └── mutations.js // state和mutations
│ ├── styles // 存放样式
│ │ ├── base.less // 基础样式, 对基础标签的重置
│ │ ├── mixins // 存放样式函数, 将某个功能变成一个函数, 可以混入到每个class中使用
│ │ │ ├── center-block.less
│ │ │ ├── clearfix.less
│ │ │ ├── icon-arrow.less
│ │ │ ├── list-none-type.less
│ │ │ ├── text-break.less
│ │ │ ├── text-hide.less
│ │ │ └── text-overflow.less
│ │ ├── mixins.less // 导出所有样式函数
│ │ ├── utilities.less // 工具类的class, 一些简单的样式class, 如: 边距/浮动/字体颜色
│ │ ├── variables.less // 变量
│ │ └── vuetemplate.less // 样式入口, 将所有样式集中到这个文件中导出
│ └── utils // 工具库
│ ├── index.js // index导出
│ └── uuid.js // 具体某个工具函数, 生成唯一的id值
├── static // 不需要经过编译的资源, 会直接copy到生成的文件夹的static中
│ └── .gitkeep // 占位, 使git识别这个空文件夹
├── tests // 存放测试相关的东西
│ └── unit // 单元测试
│ ├── .eslintrc.js // eslint配置
│ ├── index.js // 入口文件
│ └── specs // 测试用例
│ └── example.spec.js// 某个测试用例
└── vue.config.js // vue-cli3的配置