项目简介
基于 vue.js 的前端开发环境,用于前后端分离后的单页应用开发,可以在开发时使用 ES Next、scss 等最新语言特性。项目包含:

基础库: vue.js、vue-router、vuex、whatwg-fetch
编译/打包工具:webpack、babel、node-sass
单元测试工具:karma、mocha、sinon-chai
本地服务器:express
目录结构

├── README.md            项目介绍
├── index.html           入口页面
├── build              构建脚本目录
│  ├── build-server.js         运行本地构建服务器,可以访问构建后的页面
│  ├── build.js            生产环境构建脚本
│  ├── dev-client.js          开发服务器热重载脚本,主要用来实现开发阶段的页面自动刷新
│  ├── dev-server.js          运行本地开发服务器
│  ├── utils.js            构建相关工具方法
│  ├── webpack.base.conf.js      wabpack基础配置
│  ├── webpack.dev.conf.js       wabpack开发环境配置
│  └── webpack.prod.conf.js      wabpack生产环境配置
├── config             项目配置
│  ├── dev.env.js           开发环境变量
│  ├── index.js            项目配置文件
│  ├── prod.env.js           生产环境变量
│  └── test.env.js           测试环境变量
├── mock              mock数据目录
│  └── hello.js
├── package.json          npm包配置文件,里面定义了项目的npm脚本,依赖包等信息
├── src               源码目录
│  ├── main.js             入口js文件
│  ├── app.vue             根组件
│  ├── components           公共组件目录
│  │  └── title.vue
│  ├── assets             资源目录,这里的资源会被wabpack构建
│  │  └── images
│  │    └── logo.png
│  ├── routes             前端路由
│  │  └── index.js
│  ├── store              应用级数据(state)
│  │  └── index.js
│  └── views              页面目录
│    ├── hello.vue
│    └── notfound.vue
├── static             纯静态资源,不会被wabpack构建。
└── test              测试文件目录(unit&e2e)└── unit              单元测试├── index.js            入口脚本├── karma.conf.js          karma配置文件└── specs              单测case目录└── Hello.spec.js

环境安装

本项目依赖 node.js, 使用前先安装 node.js 和 cnpm(显著提升依赖包的下载速度)。

自行下载并安装 node.js: https://nodejs.org/en/download/

然后安装 cnpm 命令:

npm install -g cnpm --registry=https://registry.npm.taobao.org
快速开始
git clone https://github.com/hanan198501/vue-spa-template.git
cd vue-spa-template
cnpm install
npm run dev
命令列表:

开启本地开发服务器,监控项目文件的变化,实时构建并自动刷新浏览器,浏览器访问 http://localhost:8081

npm run dev

使用生产环境配置构建项目,构建好的文件会输出到 "dist" 目录,

  

npm run build

运行构建服务器,可以查看构建的页面

npm run build-server

运行单元测试

npm run unit

前后端分离

项目基于 spa 方式实现前后端分离,服务器通过 nginx 区分前端页面和后端接口请求,分发到不同服务。前端物理上只有一个入口页面, 路由由前端控制(基于vue-router),根据不同的 url 加载相应数据和组件进行渲染。

接口 mock

前后端分离后,开发前需要和后端同学定义好接口信息(请求地址,参数,返回信息等),前端通过 mock 的方式,即可开始编码,无需等待后端接口 ready。 项目的本地开发服务器是基于 express 搭建的,通过 express 的中间件机制,我们已经在 dev-server 中添加了接口 mock 功能。 开发时,接口的 mock 数据统一放在 mock 目录下,每个文件内如下:

module.exports = {// 接口地址api: '/api/hello',// 返回数据 参考http://expressjs.com/zh-cn/4x/api.htmlresponse: function (req, res) {res.send(`<p>hello vue!</p>
  `);}
}

模块化

开发时可以使用 ES2015 module 语法,构建时每个文件会编译成 amd 模块。

组件化

整个应用通过 vue 组件的方式搭建起来,通过 vue-router 控制相应组件的展现,组件树结构如下:

app.vue 根组件(整个应用只有一个)
├──view1.vue 页面级组件,放在 views 目录里面,有子组件时,可以建立子目录
│ ├──component1.vue 功能组件,公用的放在 components 目录,否则放在 views 子目录
│ ├──component2.vue
│ └──component3.vue
├──view2.vue
│ ├──component1.vue
│ └──component4.vue
└──view3.vue
├──component5.vue
……

单元测试

可以为每个组件编写单元测试,放在 test/unit/specs 目录下面, 单元测试用例的目录结构建议和测试的文件保持一致(相对于src),每个测试用例文件名以 .spec.js结尾。 执行 npm run unit 时会遍历所有的 spec.js 文件,产出测试报告在 test/unit/coverage 目录。

联调方式

前后端分离后,由于服务端和前端的开发环境处于2台不同的机器上,前端的异步请求需要代理到后端机器中。 联调的时候,只需通过 proxy 参数运行 dev 脚本即可,所有 mock 目录下定义的接口将会转发到 proxy 参数指定的机器:

172.16.36.90:8083 为后端机器的环境地址

npm run dev -- --proxy=172.16.36.90:8083
这样,如果 mock 目录下有定义了接口 /api/hello ,将会转发到 http://172.16.36.90/:8083/api/hello

转载于:https://www.cnblogs.com/qingruozhu/p/9442142.html

vue 文件目录结构详解相关推荐

  1. vue文件目录结构详解(一)---基础配置

    参考文献: vue-cli入门(二)--项目结构 | 思否-Reachel Vue-cli创建vue项目以及配置文件梳理|思否-AshleyLv Vue系列之WebPack与Eslint | 充电实践 ...

  2. 抽了一包华子才写出来的linux 文件目录结构详解

    文章末尾给大家留下了大量的福利 前言 今天笔者想和大家聊聊linux操作系统的文件目录结构,废话呢笔者也不想多说直接进入正文吧,希望这一篇文章能够更好的帮助大家了解到linux操作系统的文件目录结构. ...

  3. HDFS文件目录结构详解

    Namenode中主要存储fsimage和editlog文件,Datanode中主要存储数据块blk文件.下面分别介绍Namenode和Datanode中的文件存储结构. 文章目录 1 Namenod ...

  4. Linux文件目录结构详解

    目录结构及主要内容 "/"根目录部分有以下子目录: /usr 目录包含所有的命令.程序库.文档和其它文件.这些文件在正常操作中不会被改变的.这个目录也包含你的Linux发行版本的主 ...

  5. 【Vue】Vue-cli(脚手架)的目录结构详解(转载)

    一.图简单说明下各个目录都是干嘛的: 总体框架:一个vue-cli的项目结构如下,其中src文件夹是需要掌握的,所以本文也重点讲解其中的文件,至于其他相关文件,了解一下即可. 四.文件结构细分 1.b ...

  6. 一篇由简到难的 Vue 面试题+详解答案

    作者:Big shark@LX 原文:https://juejin.cn/post/6961222829979697165 前言 本文整理了「高频」出现的 Vue 相关面试题并且附带「详解答案」 难度 ...

  7. 最全最详细前端vue面试题+详解答案(拿到高薪offer不是梦)

    最全vue面试题+详解答案 1.MVC 和 MVVM 区别 MVC MVC全名是 Model View Controller,时模型 - 视图 - 控制器的缩写,一种软件设计典范. Model(模型) ...

  8. 【04Vue3 目录结构】VUE3目录结构概述结构详解目录结构的作用注意事项

    Vue3 目录结构教程 目录结构概述 在 Vue3 项目中,通常采用以下目录结构组织代码: ├── public│ └── index.html├── src│ ├── assets│ ├── com ...

  9. Android系统目录结构详解

    Android系统基于linux内核.JAVA应用,算是一个小巧精致的系统.虽是开源,但不像Linux一般庞大,娇小可亲,于是国内厂商纷纷开发出自己基于Android的操作系统.在此呼吁各大厂商眼光放 ...

最新文章

  1. docker之Dockerfile实践
  2. 动态规划矩阵连乘问题
  3. Dockerfile文件创建centos:7,配置JDK8的环境变量,与运行springboot的jar包,的镜像
  4. 一个使用ABAP Push Channel开发的乒乓球游戏,可以双打
  5. 使用PInvoke互操作,让C#和C++愉快的交互优势互补
  6. php post请求后端拿不到值_Ajax 提交POST后,后台php 无法获取$POST值
  7. 开发无框架单页面应用 — 老码农的祖传秘方
  8. 开源协议概谈[转载]
  9. Windows 发布本地提权0day,可以系统权限执行任意代码
  10. SDWebImage缓存图片的机制(转)
  11. RS485电路原理以及设计
  12. 使用Mac文件保险箱加密数据
  13. Arcgis实现nc数据区域裁剪并输出nc文件
  14. 美团技术团队书单(通用能力篇)
  15. C++中一维二维数组传参
  16. 软件测试技术课后习题:第9章软件测试自动化-广东高等教育出版社,主编杨胜利
  17. undefined运算
  18. RFID读写---RFID读卡
  19. 【HTML——粒子 特效】
  20. 按键精灵手机版 代码收藏

热门文章

  1. TCP转输控制协议(转)
  2. 问题 K: n个数的最大值和最小值
  3. 相同MAC地址,相同IP的两天电脑为什么可以同时上网互不影响(转自Nothel的blog)
  4. vb怎样同时打开2个excel工作簿_【赠书】不打开工作簿也能批量合并不同文件夹下多个表格的数据...
  5. python自动化办公选择题_Python +Selenium 自动化 css练习题
  6. android texturevideoview 缓存,Android TextureView与VideoView性能
  7. notebook pip install 只有星号_每日一点,带你入门Python-星号拆包
  8. 分享|涨薪必备的Python接口自动化测试资源技能一键get
  9. Filecoin网络存储容量迎来3 EiB时刻
  10. 以太坊上已有十个DeFi协议的锁仓量超过10亿美元