vue项目目录结构详解

项目简介
基于 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.html

response: 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/ranyonsue/p/11251839.html

时间: 2024-08-18 00:52:48

vue项目目录结构详解的相关文章

Angular新建项目目录结构详解

在上一篇博客中我们已经通过Angular CLI命令行工具创建出来一个全新的Angular项目,要想写项目,首先我们要先搞清楚项目的目录结构是怎样的,每个文件又有什么意义,文件中的代码又起到什么作用. 首先看一下整体的目录结构: 可以看到,命令行工具自动生成了很多文件和目录,我们来说说这些目录是干什么的 首层目录: node_modules 第三方依赖包存放目录 e2e 端到端的测试目录 用来做自动测试的 src 应用源代码目录 .angular-cli.json Angular命令行工具的配置

Nuxt.js学习(二) --- Nuxt目录结构详解、Nuxt常用配置项、Nuxt路由配置和参数传递

[TOC] 1.Nuxt目录结构详解 Nuxt项目文件目录结构 |-- .nuxt // Nuxt自动生成,临时的用于编辑的文件,build |-- assets // 用于组织未编译的静态资源入LESS.SASS 或 JavaScript |-- components // 用于自己编写的Vue组件,比如滚动组件,日历组件,分页组件 |-- layouts // 布局目录,用于组织应用的布局组件,不可更改. |-- middleware // 用于存放中间件 |-- pages // 用于存放

Vue Vue项目目录结构梳理

Vue项目目录结构梳理   by:授客 QQ:1033553122 1.   结构梳理   . ├── build/                      # webpack 配置文件: │   └── ... ├── config/                      # 与项目构建相关的常用的配置选项: │   ├── index.js                # 主配置文件 │   ├── dev.env.js              # 开发环境变量 │   ├── p

Tomcat目录结构详解(非常详细)

Tomcat7 的目录结构如图: · 1.bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat6.exe.tomcat6w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动Tomcat:如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME环境变量才能启动,shutdawn.bat用来停止Tomcat: 2.conf:这是一个非常非常

vue项目目录结构

如上图所示,我们的目录结构就是这样的了. 目录/文件 说明 build 这个是我们最终发布的时候会把代码发布在这里,在开发阶段,我们基本不用管. config 配置目录,默认配置没有问题,所以我们也不用管 node_modules 这个目录是存放我们项目开发依赖的一些模块,这里面有很多很多内容,不过高兴的是,我们也不用管 src 我们的开发目录,基本上绝大多数工作都是在这里开展的 static 静态资源 .xxxx文件 这些是一些配置文件,包括语法配置,git配置等.基本不用管,放着就是了 in

Android工程目录结构详解

工程目录结构: src: 存放java源代码的目录 gen: 存放自动生成文件的目录:R.java文件:存放res目录下对应资源的id 1,目录中存放所有由Android开发工具自动生成的文件. 2,目录中最重要的就是R.java文件.这个文件由Android开发工具自动产生的.Android开发工具会自动根据你放入res目录的资源,同步更新修改R.java文件. 3,正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java文件. 4,R.java文件在应用中起到了字典的

Android开发:程序目录结构详解

HelloWorld程序的目录结构概述 我们可以在文件夹中看到,HelloWorld程序的目录主要包括:src文件夹.gen文件夹.Android文件夹.assets.res文件夹. AndroidManifest.xml.default.properties.在Eclipse的左侧展开HelloWorld项目,可以看到如下图的目录结构: 下面将分节介绍上面的各级目录结构. 1.src文件夹 顾名思义(src, source code)该文件夹是放项目的源代码的.打开HelloWorld.jav

Android工程的目录结构详解

在搭建Android开发环境及简单地建立一个HelloWorld项目后,本篇将通过HelloWorld项目来介绍Android项目的目录结构.本文的主要主题如下: 1.HelloWorld项目的目录结构 · 1.1.src文件夹 · 1.2.gen文件夹 · 1.3.Android 2.1文件夹 · 1.4.assets · 1.5.res文件夹 · 1.6.AndroidManifest.xml · 1.7.default.properties 下面将分节介绍上面的各级目录结构. 1.1.sr

重要目录结构详解

ls -d 只显示目录 ls -ld /* 显示根下所有的目录 网卡文件:/etc/sysconfig/network-scripts/ifcfg-eth0 /etc/init.d/network restart   确保ONBOOT=yes Ifdown eth0 && idup eth0 查看:ifconfig blkid 看设备的UUID DNS客户端配置文件:/etc/resolv.conf 网卡文件 优先于 /etc/resolv.conf Setup里面也可配置DNS 主机名解