Skip to content

liuxiaomin922/angular-page

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

angular-page

angular单页面打包方案

一、项目介绍

此项目适合纯前后端分离的项目,具体例如后台管理系统等 ,比如java只提供接口,无任何模版渲染的功能, 这样前端项目可以单独部署到服务器,包括(html,css,js,img) 静态资源方案是用户代码打包成一个js,依赖的js库打包成一个js文件,全站css打包成一个css文件, 一次加载全站调用,好处和缺点同样明显,大家自行取舍

这套打包方案使用了

1、css压缩合并

2、js语法检查,压缩合并

3、模版压缩,路径替换(例如本地开发启用开发路径,上线打包生成线上路径)

4、生产版本的css,js,img启用了防止缓存机制的随机字符串改名

图片未启用压缩,我感觉压缩率太低,还不如不压缩(大仙们有更好的图片压缩方案告知呀)

有什么不足请指出,期待

二、安装

1、需要在本机 先安装node和gulp

node官网 http://nodejs.cn/ 请安装稳定版 gulp安装 :

 (1)在命令行输入:npm install -g gulp  #全局安装
 (2)切换到项目目录命令行输入:npm install gulp --save-dev # 局部安装

2、node 和gulp都安装完毕后

  在命令行输入 :npm install #安装gulp插件

3、如果一切正常下面可以开始使用了,介绍下命令

(1) 在命令行输入 :gulp #打包生成 devbuild(本地开发包)和productbuild(上线包),本地测试devbuild即可,上线用productbuild包
         devbuild和productbuild区别在于前者没有将js和css、html进行压缩,只是进行了同步依赖的合并,同时前者没有为js何css加入防止缓存的随机字符串
         
(2)在命令行输入:gulp d #单独打包生成devbuild包

(3)在命令行输入:gulp p #单独打包生成productbuild包
(3)在命令行输入:gulp watch #监视静态文件和html的变化并实时打包输出到devbuild和productbuild(可以监听js(不包括公共库lib),css,html,img的增删改)
(4)在命令行输入:gulp app #单独打包devbuild 的js文件(相同任务还有:css、lib、htmlmin、imagemin,分别对应单独打包css文件,公共依赖的库文件、压缩html模板、压缩图片)
(5)在命令行输入:gulp p-app #单独打包productbuild 的js文件(相同任务还有:p-css、p-lib、p-htmlmin、p-imagemin,p-preventCook分别对应单独打包css文件,公共依赖的库文件、压缩html模板、压缩图片、和防止缓存重命名js和css加入随机字符串如:main-3332c03bdc.css)

说明:在平时工作 首先需要运行 gulp,打包生成最新的开发包和上线包,然后开启命令 gulp watch即可,devbuild包不需要上传到svn,同时需要把本地搭建的服务器根目录指向 "devbuild/",默认首页为 index.html

三、使用

下面以 /static/js/module/controller 为例,讲解如何具体使用框架 angular单页框架

这套项目使用了angular-route 来控制路由

比如你要添加一个other的页面,访问地址是: /other

<1> 需要在 /static/js/app.js 里面添加一条路由配置

 .when('/other', {
      controller: 'pageCtr', 
      templateUrl: '/tpl/page2.html'
      })

<2> 需要在/static/js/module/controller 路径下增加page.js

 var app=require("./indexApp");
 var lxm=require("../../common/page") #这是调用/static/js/common 目录下公共js组件的方法
 app.controller("pageCtr",['$scope',function($scope){  #控制器的名称一定要和/static/js/app.js 里面配置的controller 名称一样
      $scope.aa="/111.png";
      $scope.aaa="/index/111.png";
      lxm()
 }]);

<3> 需要在/static/view/tpl 路径下增加 page2.html

<4> 需要在/static/js/module/controller/indexApp.js 里面增加一行

 require("./page") #这样在打包依赖的时候就可以找到page.js,将其合并到一个js里面

最后就可以在/static/js/module/controller/page.js 里面尽情开发所需业务 相应的html模版就是/static/view/tpl/page2.html

如何再增加更多的页面,道理是一样的重复以上4步

About

angular单页面打包方案

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages