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. Linux系统编程:socket网络编程(操作篇)

    一.问题思考 问1.网络通信应用在什么场合?通信的前提是什么? 答1.主要应用在不同主机进程间的互相通信,同一主机的进程也可以使用网络进行通信.通信的前提是如何标识通信进程的唯一,由于不同主机的进程极 ...

  2. java.lang.IllegalStateException: Unknown Priority XXXX 的解决方法

    异常信息: java.lang.IllegalStateException: Unknown Priority SYS_ERR_SMS at org.apache.log4j.Category.pri ...

  3. ehcache 集群使用 rmi方式 有图有真想

    来源:http://www.tuicool.com/articles/MJzYZbR ehcache 有几种方式集群 ,rmi,jgroup还有jms:这里讲一下ehcache的使用 ehcache ...

  4. 基础js--调试js

    1,逻辑错误 常见错误: 是否由于拼写错误而导致申明了新的变量? 是否在条件判定上出现了疏漏? 方法:使用开发者工具调试代码 2,代码错误 常见错误: 是否拼写错误? 是否使用中文的符号? 扩展: 1 ...

  5. Struts2 数据驱动

    在servlet中获取页面传递过来的数据的方式是:request.getParameter(“username”);这个代码可以获取到页面的username的数据.在action中可以通过属性驱动的方 ...

  6. Dubbo源码解读

    1.提升SOA的微服务架构设计能力   通过读dubbo源码是一条非常不错的通往SOA架构设计之路,毕竟SOA的服务治理就是dubbo首先提出来的,比起你去看市面上的SOA微服务架构的书籍,学到的架构 ...

  7. [中英对照]Why Redis beats Memcached for caching | 在cache化方面,为何Redis胜过Memcached?

    对Memcached和Redis有兴趣的同学不妨花几分钟读一读本文,否则请飘过. Why Redis beats Memcached for caching | 在cache化方面,为何Redis胜过 ...

  8. FocusBI: 《DW/BI项目管理》之数据库表结构 (原创)

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...

  9. 那些年,我们一起误解过的REST

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由sammyshen 发表于云+社区专栏 最近几年REST API越来越流行,特别是随着微服务的概念被广泛接受和应用,很多Web Ser ...

  10. gulp教程之gulp中文API

    1.gulp.src(globs[, options]) 1.1.说明:src方法是指定需要处理的源文件的路径,gulp借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入 ...