gulp 在 angular 项目中的使用

keyword:gulp,angularjs,ng,ngAnnotate,jshint,gulpfile

最后附完整简洁的ng项目gulpfile.js

准备

全局安装gulp

npm install --global gulp

项目开发依赖devDependencies安装

npm install --save-dev gulp

在项目根目录下创建一个名为 gulpfile.js 的文件

var gulp = require('gulp');

gulp.task('default', function() {
// 将你的默认的任务代码放在这
});

运行 gulp

gulp

默认的名为 default 的任务(task)将会被运行,在这里,这个任务并未做任何事情

想要单独执行特定的任务(task),请输入

gulp <task> <othertask>。

插件

jshint js代码检查

全局安装jshint

npm install -g jshint

开发依赖devDependencies安装

npm install --save-dev jshint

gulpfile.js中新增task

gulp.task('jshint', function () {
return gulp.src('./www/js/**/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));
});

运行

gulp jshint

gulp-ng-annotate 支持ng依赖注入声明方式

Add angularjs dependency injection annotations with ng-annotate

开发依赖devDependencies安装

npm install --save-dev gulp-ng-annotate

使用

gulp.task('build-app-js', function () {
return gulp.src('./www/**/*.js')
.pipe(ngAnnotate({single_quotes: true}))
.pipe(gulp.dest('./www/dist'))
});

附,完整、简单的ng项目gulpfile.js

var gulp = require('gulp');
var ngAnnotate = require('gulp-ng-annotate');
var ngmin = require('gulp-ngmin');
var stripDebug = require('gulp-strip-debug');
var concat = require('gulp-concat');
//var minifyCss = require('gulp-minify-css');//尚不考虑css压缩
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');
var jshint = require('gulp-jshint'); //执行压缩混淆前,先执行jshint
gulp.task('default', ['jshint'], function() {
gulp.start('minifyjs');
}); //压缩,合并 js
gulp.task('minifyjs',function() {
return gulp.src('./www/js/**/*.js') //需要操作的文件
.pipe(concat('main.js')) //合并所有js到main.js
.pipe(gulp.dest('./www/dist')) //输出到文件夹
.pipe(rename({suffix: '.min'})) //rename压缩后的文件名
.pipe(ngAnnotate())
.pipe(ngmin({dynamic: false}))//Pre-minify AngularJS apps with ngmin
.pipe(stripDebug())//除去js代码中的console和debugger输出
.pipe(uglify({outSourceMap: false})) //压缩
.pipe(gulp.dest('./www/dist')); //输出
}); gulp.task('jshint', function () {
return gulp.src('./www/js/**/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));
});

开发依赖安装指令:

npm install --save-dev gulp-ng-annotate
npm install --save-dev gulp-ngmin
npm install --save-dev gulp-strip-debug
npm install --save-dev gulp-concat
npm install --save-dev gulp-minify-css
npm install --save-dev gulp-rename
npm install --save-dev gulp-uglify
npm install --save-dev gulp-jshint //需提前把jshint 安装好

[原创],转载请附带原文地址:http://www.cnblogs.com/sloong/p/5209390.html

gulp 在 angular 项目中的使用的更多相关文章

  1. angular项目中各个文件的作用

    原文地址 https://www.jianshu.com/p/176ea79a7101 大纲 1.对angular项目中的一些文件的概述 2.对其中一些文件的详细描述 2.1.package.json ...

  2. Angular 项目中如何使用 ECharts

    在有些使用 ECharts 库的 Angular 项目中,通常除了安装 npm 包之外,还会在 angular.json 中配置 “build.options.scripts”,将 “node_mod ...

  3. angular项目中遇到的问题

    一.angular项目中如何实现路由缓存 需要实现的效果,对请求的数据进行缓存,比如进入文章详情页之后点击返回,不会再调用后台数据接口:而是加载缓存中的数据,如何数据变动的情况下,可使用下拉刷新刷新页 ...

  4. angular项目中使用Primeng

    1.第一步把依赖添加到项目中 npm install primeng --save npm install @angular/animations --save npm install font-aw ...

  5. Angular项目中引入jQuery

    npm install --save jquery npm install @types/jquery --save 在对应的组件中引入 import * as $ from "jquery ...

  6. 在angular项目中使用bootstrap的tooltip插件时,报错Property 'tooltip' does no t exist on type 'JQuery<HTMLElement>的解决方法和过程

    在angular4的项目中需要使用bootstrap的tooltip插件. 1. 使用命令安装jQuery和bootstrap npm install bootstrap jquery --save ...

  7. angular项目中使用jquery的问题

    1.使用npm命令往项目中添加jQuery. npm install jquery --save 2.在你想要用jQuery的组件中添加. import * as $ from "jquer ...

  8. Angular项目中共享模块的实现

    创建share Modele:ng g m share import进来所有需要共享的模块都export出去, 一.共享CommonModule 暂时只有CommonModule,以后会有一些需要共享 ...

  9. Angular项目中核心模块core Module只加载一次的实现

    核心模块CoreModule在整个系统中只加载一次,如何实现? 创建core Modele:ng g m core 既然CoreModule是类,就有构造函数,在构造函数中进行依赖注入. export ...

随机推荐

  1. 【性能测试】:LR插入mysql数据库数据,脚本参数化问题

    一,今天准备脚本做mysql数据库的铺地数据,脚本内容不赘述,在批量执行insert语句时候,出现一个问题: // sprintf(chQuery, "insert into table ( ...

  2. 在Azuer创建自己的Linux_VM

    ---恢复内容开始--- emm..就是想搭个自己的VPN去YouTube看看视屏找找资源什么的... (滑稽.jpg)然后发现似乎需要这个玩意儿 先去申请一个Azuer账户 然后根据要求一步步来就好 ...

  3. hibernate_SessionFactory_getCurrentSession_JTA简介

    JTA:java transaction  api java里所规定的一种管理事务的API 在另一篇播客我写到了,SessionFactory需要关注两个方法, 即:  openSession     ...

  4. git 检出项目部分目录(稀疏检出)

    git clone 会把整个项目都clone下来,对于大项目git status比较慢,每次pull时候也拉取一些无关的代码或者文件:git可以实现像svn一样检出部分目录 步骤: git clone ...

  5. multi-threads JavaEE 容器

    Thread -- Request What is recommended way for spawning threads from a servlet in Tomcat [duplicate] ...

  6. [作业] Python入门基础---九九乘法表

    1.while 循环 : x = 1 while x < 10: y = 1 while y <=x: print('%d*%d=%2d' % (y,x,x*y),end = '\t') ...

  7. Web开发者的福利 30段超实用CSS代码

    1.花式连字符(&) 这个类应该在span元素里使用,并且里面包括&字符.它使用经典的serif字体和斜体来增强&符号. .amp { font-family: Baskerv ...

  8. CSS3 Media Queries_media queries, css3属性详解

    Media Queries直译过来就是"媒体查询",在我们平时的Web页面中head部分常看到这样的一段代码: <link href="css/reset.css& ...

  9. 撩课-Java每天5道面试题第25天

    156.mvc:view-controller有什么作用? 当我们发送一个请求时,如果没有找到对应的mapping 则会对配置文件当中匹配mvc:view-controller 注意点:使用时要添加后 ...

  10. DButils分析

    package com.ldf.utils; import java.sql.Connection; public class DBUtils { private static String driv ...