gulp 在 angular 项目中的使用
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 项目中的使用的更多相关文章
- angular项目中各个文件的作用
		
原文地址 https://www.jianshu.com/p/176ea79a7101 大纲 1.对angular项目中的一些文件的概述 2.对其中一些文件的详细描述 2.1.package.json ...
 - Angular 项目中如何使用 ECharts
		
在有些使用 ECharts 库的 Angular 项目中,通常除了安装 npm 包之外,还会在 angular.json 中配置 “build.options.scripts”,将 “node_mod ...
 - angular项目中遇到的问题
		
一.angular项目中如何实现路由缓存 需要实现的效果,对请求的数据进行缓存,比如进入文章详情页之后点击返回,不会再调用后台数据接口:而是加载缓存中的数据,如何数据变动的情况下,可使用下拉刷新刷新页 ...
 - angular项目中使用Primeng
		
1.第一步把依赖添加到项目中 npm install primeng --save npm install @angular/animations --save npm install font-aw ...
 - Angular项目中引入jQuery
		
npm install --save jquery npm install @types/jquery --save 在对应的组件中引入 import * as $ from "jquery ...
 - 在angular项目中使用bootstrap的tooltip插件时,报错Property 'tooltip' does no t exist on type 'JQuery<HTMLElement>的解决方法和过程
		
在angular4的项目中需要使用bootstrap的tooltip插件. 1. 使用命令安装jQuery和bootstrap npm install bootstrap jquery --save ...
 - angular项目中使用jquery的问题
		
1.使用npm命令往项目中添加jQuery. npm install jquery --save 2.在你想要用jQuery的组件中添加. import * as $ from "jquer ...
 - Angular项目中共享模块的实现
		
创建share Modele:ng g m share import进来所有需要共享的模块都export出去, 一.共享CommonModule 暂时只有CommonModule,以后会有一些需要共享 ...
 - Angular项目中核心模块core Module只加载一次的实现
		
核心模块CoreModule在整个系统中只加载一次,如何实现? 创建core Modele:ng g m core 既然CoreModule是类,就有构造函数,在构造函数中进行依赖注入. export ...
 
随机推荐
- VS 代码自动对齐快捷键
			
全部代码代码自动对齐快捷键为 Ctrl + a(按后可松松手) + k(按后可松松手) + f
 - ElasticSearch 问题分析:No data nodes with HTTP-enabled available
			
环境:ES-5.4.0版本,部署方式:3master node+2client node+3data node 说明:data node和client node都配置了http.enabled: fa ...
 - DIV盒子介绍
			
1.盒子模型=网页布局的基石,由四部分组成: 边框(border).外边距(margin).内边距(padding).盒子中的内容(content) 2.设置顺序是顺时针:上.右.下.左. 三个值(上 ...
 - javascript的JSON对象
			
JSON包含用于解析JSON(javascript object notation)的方法,将值转换成JSON.JSON不可以被调用或者用作构造函数. JSON对象保存在大括号内,JSON数组保存在中 ...
 - python爬虫的教程
			
来源:http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一 ...
 - cors允许的方法和contype-type
			
https://fetch.spec.whatwg.org/#cors-safelisted-request-header get head post text/plain multipart/for ...
 - centos6.5下安装zip格式的tomcat7和tomcat8,并同时运行
			
前提: 我的tomcat7安装在 /home/hadoop/software/apache-tomcat-7.0.69, tomcat8安装在 /home/hadoop/software/apache ...
 - 剑指offer(26-30)编程题
			
二叉搜索树与双向链表 字符串的排列 数组中出现次数超过一半的数字 最小的K个数 连续子数组的最大和 26.输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整 ...
 - jquery validate(转)
			
转自:http://blog.sina.com.cn/s/blog_608475eb0100h3h1.html 官网地址:http://bassistance.de/jquery-plugins/jq ...
 - laravel5.4学习--laravel目录结构
			
Laravel目录结构分析 app目录:主要是存放自己开发的应用代码(里面主要书写 控制器和模型和路由文件) bootstrap目录:laravel启动目录 config目录:主要是存放配置文件信息 ...