亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

angular 配合 gulp開發(fā)項(xiàng)目

lakeside / 1101人閱讀

最近在學(xué)習(xí)angular做后臺(tái)管理項(xiàng)目,所以把記錄一下開發(fā)流程。

準(zhǔn)備工具

gulp --用來自動(dòng)化構(gòu)建項(xiàng)目
angular --搭建項(xiàng)目

開發(fā)目錄

components

組件

css

樣式

img

圖片

lib

依賴的框架(angular、Jq等都放在里面)

scripts

app.js(主要是路由配置)

index.html

首頁

HTML編寫



    
        
        
        angularDemo
        
        
    

    
        
這里是頭部

現(xiàn)在是{{pageName}}

app.js的編寫
"use strict";
var app = angular.module("app", [
    "ui.router",
    "controller",
    "directive",
    "services",
    "templates"
]).config(["$stateProvider", "$urlRouterProvider", function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider
    .otherwise(function(inject, location) {
        var path = location.$$path || "";
        return "/index";
    })
    $stateProvider.state("index", {
            url: "/index",
            controller: "indexCtr",
            templateUrl: "components/index/index.html"
    }).state("module2", {
            url: "/module2",
            controller: "module2Ctr",
            templateUrl: "components/module2/module2.html"
    }).state("module3", {
            url: "/module3",
            controller: "module3Ctr",
            templateUrl: "components/module3/module3.html"
    })

}]).run(["$rootScope", "$state", function(rootScope, state) {
    //初始化
}]);

angular.module("controller", []);
angular.module("directive", []);
angular.module("services", []);
angular.module("templates", []);
模塊的寫法

index.html

我是index.html

index.js

angular.module("controller")
    .controller("indexCtr", ["$scope", "$rootScope", "$http",  function($scope, $rootScope, $http) {
        var vm = $scope.vm = {};
        $rootScope.pageName = "index";
    }]);
packageJson
{
  "name": "angular",
  "version": "1.0.0",
  "description": "angualr with gulp",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1",
    "dev": "gulp",
    "build": "gulp build"
  },
  "repository": {
    "type": "git",
    "url": "https://git.coding.net/mumofa/angular_Gulp.git"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "browser-sync": "^2.12.8",
    "chokidar": "^1.5.1",
    "del": "^2.2.0",
    "event-stream": "^3.3.2",
    "gulp": "^3.9.1",
    "gulp-angular-templatecache": "^1.8.0",
    "gulp-concat": "^2.6.0",
    "gulp-minify-css":"^1.2.4",
    "gulp-sass": "^2.3.1",
    "gulp-uglify": "^1.5.3"
  }
}
gulp腳本編寫
var gulp = require("gulp");
var concat = require("gulp-concat"); //合并文件
var minifycss = require("gulp-minify-css"); //壓縮css
var templateCache = require("gulp-angular-templatecache"); //壓縮 ng模板
var uglify = require("gulp-uglify"); // 壓縮 代碼
var es = require("event-stream"); // 事件插件
var del = require("del"); //刪除
var browserSync = require("browser-sync"); // 自動(dòng)刷新
var chokidar = require("chokidar"); //監(jiān)聽

//壓縮依賴的js代碼 
gulp.task("libScripts", function() {
    var scriptsGlob = ["app/lib/jQuery/*.js",
        "app/lib/bootstrap/*.js",
        "app/lib/angular/angular.min.js",
        "app/lib/**/*.js"
    ];
    return gulp.src(scriptsGlob)
        .pipe(uglify()) //壓縮 js代碼
        .pipe(concat("lib.min.js")) // 拼接成 一個(gè)js
        .pipe(gulp.dest("dist/js")) //輸出到指定目錄
});
//壓縮ng代碼
gulp.task("ngScripts", function() {
    var scriptsGlob = [
        "!app/lib/**/*.js",
        "app/scripts/app.js",
        "app/**/*.js"
    ];
    var tpl = gulp.src("app/**/*.html")
        .pipe(templateCache());

    /*return gulp.src(scriptsGlob)
        .pipe(uglify()) //壓縮 js代碼
        .pipe(concat("business.min.js")) // 拼接成 一個(gè)js
        .pipe(gulp.dest("dist/js")) //輸出到指定目錄*/
    return es.merge(es.merge(
                gulp.src(scriptsGlob),
                tpl
            )
//            .pipe(uglify())
//            .pipe(concat("business.min.js"))
            .pipe(concat("business.js")))
        .pipe(gulp.dest("dist/js"));
});
//輸出HTML
gulp.task("distHtml",function(){
    return gulp.src("app/index.html")
        .pipe(gulp.dest("dist"))
});
//壓縮css
gulp.task("minifyCss", function() {
    var cssSrc = [
        "app/css/bootstrap/**/*.css",
        "app/css/Font-Awesome/**/*.css",
        "app/css/system.css",
        "app/css/**/*.css"
    ];
    return gulp.src(cssSrc) //壓縮的文件
        .pipe(minifycss()) //執(zhí)行壓縮
        .pipe(concat("all.min.css")) // 拼接成 一個(gè)js
        .pipe(gulp.dest("dist/css")); //輸出到指定目錄
});
//清空 輸出
gulp.task("clean", function(cb) {
    del(["dist"], cb);
});
//gulp運(yùn)行的時(shí)候
gulp.task("default", ["init"]);
gulp.task("watch",["watch:css","watch:ng","watch:html"]);
gulp.task("init", ["libScripts","distHtml", "ngScripts", "minifyCss"]);

gulp.task("browser-sync", ["init","watch"], function() {
    browserSync.init({
        server: {
            baseDir: ["app"]
        },
        middleware: [function(req, res, next) {
            next();
        }],
        port: 80
    });
});

//監(jiān)聽css
gulp.task("watch:css", function() {
    var cssSrc = [
        "app/css/bootstrap/**/*.css",
        "app/css/Font-Awesome/**/*.css",
        "app/css/system.css",
        "app/css/**/*.css"
    ];
    gulp.watch(cssSrc,["minifyCss"], browserSync.reload);
});
//監(jiān)聽js和html模板
gulp.task("watch:ng", function() {
    var jsSrc = [
        "!app/lib/**/*.js",
        "app/scripts/app.js",
        "app/**/*.js"
    ];
    var tplSrc = "app/**/*.html";
    gulp.watch(jsSrc,["ngScripts"], browserSync.reload);
    gulp.watch(tplSrc,["ngScripts"], browserSync.reload);
});
//監(jiān)聽html
gulp.task("watch:html", function() {
    var htmlSrc = ["app/index.html"];
    gulp.watch(htmlSrc,["distHtml"], browserSync.reload);
});

process.on("uncaughtException", function(e){console.log(e.stack)})
最后項(xiàng)目演示

基本上按照上述流程,都可以正常開發(fā)項(xiàng)目了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/79635.html

相關(guān)文章

  • angular1配合gulp和bower使用

    摘要:需要在每次發(fā)布前刪除和目錄總?cè)蝿?wù)服務(wù)啟動(dòng)一個(gè)服務(wù)器服務(wù)器從哪個(gè)路徑開始讀取,默認(rèn)從開發(fā)路徑讀取自動(dòng)刷新打開瀏覽器監(jiān)聽定義任務(wù) 一 安裝gulp和bower gulp安裝: npm install -g gulp bower安裝: npm install -g bower ==注:== angularjs的一些包文件我們是通過bower來管理的 二 bower使用 使用bower初始化...

    JasonZhang 評(píng)論0 收藏0
  • AngularJS簡述

    流行框架 簡介 angularjs是一款非常優(yōu)秀的前端高級(jí)JS框架,由谷歌團(tuán)隊(duì)開發(fā)維護(hù),能夠快速構(gòu)建單頁web應(yīng)用,化繁為簡 無論是angularjs還是jQuery都是用原生JS封裝的 庫:對(duì)代碼進(jìn)行封裝,調(diào)用封裝的方法,簡化操作 傳統(tǒng)方式是用get方式獲取元素,然后點(diǎn)方法 jQuery庫實(shí)現(xiàn)了對(duì)獲取方式的封裝,對(duì)方法的封裝 框架:提供代碼書寫規(guī)則,按照規(guī)則去寫代碼,框架會(huì)幫我們實(shí)現(xiàn)響應(yīng)的功能...

    Jason 評(píng)論0 收藏0
  • 2017年前端框架、類庫、工具大比拼

    摘要:相比于開發(fā)人員的數(shù)量,目前框架類庫和工具的數(shù)量似乎更多一些。本文將會(huì)討論目前最為流行的客戶端框架類庫和工具以及它們之間的基本差異。典型的類庫包括字符串處理日期元素事件動(dòng)畫網(wǎng)絡(luò)請(qǐng)求等功能。所以不需要明確的區(qū)分類庫框架和工具。 相比于JavaScript開發(fā)人員的數(shù)量,目前JavaScript框架、類庫和工具的數(shù)量似乎更多一些。截至2017年5月,GitHub上的快速搜索顯示,有超過110...

    Alliot 評(píng)論0 收藏0
  • 使用gulp+bower構(gòu)建Angular.js項(xiàng)目

    摘要:本文重點(diǎn)是詳細(xì)介紹項(xiàng)目的構(gòu)建。是優(yōu)秀的自動(dòng)化項(xiàng)目構(gòu)建工具,我們將用它完成等文件的的測試檢查合并壓縮格式化瀏覽器自動(dòng)刷新部署文件生成,并監(jiān)聽文件在改動(dòng)后重復(fù)指定的這些步驟熱重載。是項(xiàng)目依賴管理工具。環(huán)境需求運(yùn)行在環(huán)境,首先安裝。 本文重點(diǎn)是詳細(xì)介紹Angular.js項(xiàng)目的構(gòu)建。gulp是優(yōu)秀的自動(dòng)化項(xiàng)目構(gòu)建工具,我們將用它完成 javascript/less/css/html/imag...

    roland_reed 評(píng)論0 收藏0
  • 個(gè)人博客主頁搭建隨筆

    摘要:博主目前的這個(gè)項(xiàng)目還不算很大,模塊依賴簡單,但期望完成諸如版本號(hào)替換,壓縮代碼,合并文件,發(fā)布到服務(wù)器等和模塊化關(guān)系不大的工作,所以使用了。同時(shí),對(duì)和附加緩存,配合和版本號(hào)實(shí)現(xiàn)服務(wù)器更新,這一部分其實(shí)已經(jīng)幫我們實(shí)現(xiàn)好了。 經(jīng)常在各種論壇、博客還有 github 上活躍的朋友不難發(fā)現(xiàn),許多大牛都有自己的網(wǎng)站,也多以博客為主。博主作為一個(gè)立志前端的大白,難道不應(yīng)該和大牛學(xué)習(xí)么?說干就干,前...

    whjin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<