npm的使用

node

  • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一种JavaScript语言运行平台,和浏览器这个运行平台是同一个概念。

npm

  • npm平台包管理工具(Node Package Manager):通过一套命令统一管理常用的类库。平时用npm下载jquery、bootstrap、angular等插件、库或框架。

npm的安装

初始化

在相应文件夹内shift+鼠标右键,选择在此处打开命令窗口

	npm init

一直Enter键,最后会生成package.json文件

下载包

npm属于国外网站,下载速度可能比较慢,加上淘宝镜像速度会快些

淘宝镜像:--registry=https://registry.npm.taobao.org

	npm install jquery //当前目录下安装
npm install jquery --save //下载之后会在package.json中生成当前下载的包的版本信息
npm install jquery -g //全局安装
npm install jquery@version //在当前目录安装指定版本的包
npm uninstall jquery //删除当前目录下的包

一般使用第二行代码下载,因为下载之后会在package.json中生成当前下载的包的版本信息,若是得到的是带版本信息的package.json,只用执行npm install就会把所有的包下载。

gulp的使用

官网

Gupl官网http://www.gulpjs.com

Gulp 中文网http://www.gulpjs.com.cn

Gulp 插件下载https://www.npmjs.com/

gulp是什么

  • gulp是前端开发过程中对代码进行自动化构建的工具。它不仅能对资源进行优化,而且在开发过程中能够通过配置自动完成很多重复的任务,让我们可以专注于代码,提高工作效率

gulp的使用

5个核心方法

  • gulp.task('任务名',function(){}) // 创建任务。
  • gulp.src('./*.css') 指定想要处理的文件。
  • gulp.dest() // 指定最终处理后的文件的存放路径。
  • gulp.watch() // 自动的监视文件的变化,然后执行相应任务。
  • gulp.run('任务名'),直接执行相应的任务。

基本使用

1. 全局安装gulp

    npm install --global gulp //全局安装 默认安装路径C:\Users\Administrator\AppData\Roaming\npm\node_modules

2. 局部安装gulp以及相关依赖(devDependencies)

    npm install --save-dev gulp

3. 根目录新建一个gulpfile.js,在内部引入gulp

    var gulp = require('gulp')

4. 创建任务

    gulp.task('taskName',function(){

        console.log(‘runing task’);
})

5. 在命令行中执行任务

    gulp.task('test',function(){

        console.log(‘runing task’);
}) gulp test //若任务名是default 则只用执行gulp

使用gulp-concat合并js文件

  1. 安装合并代码插件gulp-concat

     npm install gulp-concat
  2. 引用gulp-concat

     var concat = require( 'gulp-concat' );
  3. 书写合并代码

     gulp.task( 'cat', function () {
    
         // gulp.src( './js/*.js' ) // 合并js文件夹下的所有js文件
    
         // 按顺序合并指定js文件
    gulp.src( [ './js/Itcast.core.js',
    './js/Itcast.ctor.js',
    './js/Itcast.dom.js',
    './js/Itcast.event.js',
    './js/Itcast.style.js',
    './js/Itcast.attr.js' ] )
    // 使用 gulp-concat 合并
    .pipe( concat( 'bundle.js' ) )
    // 最后将处理好的文件保存在 dist 文件夹下
    .pipe( gulp.dest( './dist' ) );
    } );

使用gulp-uglify压缩js代码

  1. 安装gulp-uglify

     npm install gulp-uglify
  2. 引用gulp-uglify

     var press = require( 'gulp-uglify' );
  3. 书写压缩代码

     gulp.task( 'press', function () {
    // 指定需要被压缩的文件
    gulp.src( './dist/*.js' )
    // 使用press方法压缩
    .pipe( press() )
    // 输出到指定目录
    .pipe( gulp.dest( './output' ) );
    } );

对css进行合并压缩操作

    npm install gulp-cssnano --save

    // 新建一个任务,对css进行处理
ulp.task('style', function(){
// 对项目中的2个css文件进行合并,压缩操作
// 1.匹配到要处理的文件
ulp.src(['./*.css'])
// 2.合并文件
pipe(concat('index.css'))
// 3.压缩操作
pipe(cssnano())
// 4.输出到指定目录
pipe(gulp.dest('./dist'))
})

对html进行合并压缩

    npm install gulp-htmlmin --save

    // 新建一个任务,对html进行压缩
gulp.task('html', function(){
// 1.匹配到要处理的文件
gulp.src(['./index.html'])
// 2.压缩操作
.pipe(htmlmin({collapseWhitespace:true}))
// 3.指定输出目录
.pipe(gulp.dest('./dist'))
})

gulp.watch

  • 监视文件的变化,然后执行相应的任务

  • gulp.run, 直接执行指定的任务

      // gulp.watch 监视文件变化,执行相应任务
    gulp.task('mywatch', function(){
    // 执行指定的任务
    gulp.run('script')
    // 1.监视js文件的变化,然后执行script任务
    // 第一个参数:要监视的文件的规则
    // 第二个参数:是要执行的任务
    gulp.watch(['./app.js','sign.js'],['script'])
    })

执行多个任务

    var gulp = require( 'gulp' );
var concat = require( 'gulp-concat' );
var press = require( 'gulp-uglify' ); gulp.task( 'concat', function () {
gulp.src( [ './js/Itcast.core.js',
'./js/Itcast.ctor.js',
'./js/Itcast.dom.js',
'./js/Itcast.event.js',
'./js/Itcast.style.js',
'./js/Itcast.attr.js' ] )
.pipe( concat( 'Itcast.js' ) )
.pipe( gulp.dest( './dist' ) );
} ); gulp.task( 'concatPress', function () {
return gulp.src( [ './js/Itcast.core.js',
'./js/Itcast.ctor.js',
'./js/Itcast.dom.js',
'./js/Itcast.event.js',
'./js/Itcast.style.js',
'./js/Itcast.attr.js' ] )
.pipe( concat( 'Itcast.min.js' ) )
.pipe( gulp.dest( './dist' ) );
} ); gulp.task( 'default', [ 'concat', 'concatPress' ], function () { gulp.src( './dist/Itcast.min.js' )
.pipe( press() )
.pipe( gulp.dest( './dist' ) );
} );

npm和gulp学习的更多相关文章

  1. npm和gulp学习笔记

    原文链接:[gulpfile.js文件常见配置]

  2. gulp学习笔记4

    gulp系列学习笔记: 1.gulp学习笔记1 2.gulp学习笔记2 3.gulp学习笔记3 4.gulp学习笔记4 之前的任务都是单个的,比较简单.接下去我们开始引用多个插件,一次性把任务搞定,省 ...

  3. gulp学习笔记1

    gulp系列学习笔记: 1.gulp学习笔记1 2.gulp学习笔记2 3.gulp学习笔记3 4.gulp学习笔记4 1.安装gulp 首先我们需要node环境,nodejs安装这里就不说了,不懂的 ...

  4. gulp学习笔记2

    gulp系列学习笔记: 1.gulp学习笔记1 2.gulp学习笔记2 3.gulp学习笔记3 4.gulp学习笔记4 1. 压缩 CSS 压缩 css 代码可降低 css 文件大小,提高页面打开速度 ...

  5. gulp学习笔记3

    gulp系列学习笔记: 1.gulp学习笔记1 2.gulp学习笔记2 3.gulp学习笔记3 4.gulp学习笔记4 1.编译sass Sass 是一种 CSS 的开发工具,提供了许多便利的写法,大 ...

  6. Gulp 学习总结

    Gulp 自动化工具开发非常方便,便于上手,值得使用. 一.Gulp安装 gulp是基于NodeJS运行的,所以需要想安装NodeJS.  http://nodejs.org/download/ 安装 ...

  7. gulp 学习笔记

    以这次学习gulp为契机来同时了解和学习node相关的知识和概念,比如 npm,package.json等,为以后学习node打好基础. 目录   npm     查看模块     安装模块      ...

  8. 前端自动化构建工具 gulp 学习笔记 一、

    一.我对gulp的初期理解 是一种前端辅助开发工具 可以帮你把js,css,img等文件 合并.压缩,图片好像是合并为精灵图,合并为精灵图之后,还会生成一个css样式表. 官方解说是:基于流的自动化构 ...

  9. gulp学习-metamask前端使用

    https://www.gulpjs.com.cn/docs/getting-started/ ,这个是3.9.0版本 后面发现安装的版本是4.0.0,看下面这个: https://github.co ...

随机推荐

  1. 51nod 1642 区间欧拉函数 && codeforce594D REQ

    画一下柿子就知道是求区间乘积乘区间内所有质因数的(p-1)/p(就是求欧拉的公式嘛) 看上去莫队就很靠谱然而时间O(nsqrt(n)logn)并不资瓷 还是离线,确定右端点,对于1~i的区间内的质因数 ...

  2. 7.2 高速缓冲存储器-Cache

    高速缓冲存储器:Cache.Cache的功能是提高CPU数据的输入和输出的速率.CPU的速度与主存的速度之间有巨大的差异.主存的存取时间.存取速度要比CPU的速度要慢了很多倍.为了调和它们之间的巨大速 ...

  3. E20171005-ts

    collapse  n. 垮台; (身体的) 衰弱;              vt. 使倒塌; 使坍塌; 使瓦解;               vi. 崩溃; 倒塌; 折叠; (尤指工作劳累后) 坐 ...

  4. bzoj2427:[HAOI2010]软件安装(Tarjan+tree_dp)

    2427: [HAOI2010]软件安装 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1053  Solved: 424[Submit][Statu ...

  5. [App Store Connect帮助]三、管理 App 和版本(6.2)转让 App:App 转让条件

    App 必须满足以下条件才可转让: 转让者和接收者的帐户均不处于待处理或变更状态,且双方均已接受“协议.税务和银行业务”部分中最新版本的转让协议 该 App 的任何版本都不能使用 iCloud 权限 ...

  6. [Swift通天遁地]九、拔剑吧-(15)搭建具有滑出、视差、3D变形等切换效果的引导页

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. C#中Random

    说明:C#中的随机数是一个伪随机数,随机数字从一组有限的数字选择以相同的概率,所选的数字不是完全随机的,因为使用数学算法来选择它们.在大多数Windows系统中,Random的15毫秒内创建的对象很可 ...

  8. NSNotificationCenter 的使用详解

    通常我们在 iOS 中发生什么事件时该做什么是由 Delegate 实现的,例如 View 加载完后会触发 viewDidLoad.Apple 还为我们提供了另一种通知响应方式,那就是 NSNotif ...

  9. jQuery :even

    此选择器匹配所有索引值为偶数的元素,从0开始计数. jQuery1.0版本添加. 语法结构: jQuery( ":even" ) 代码实例: <!doctype html&g ...

  10. [ECharts]"echarts/config" is not exists

    今天在给Echarts折线图中的数据点增加点击事件的时候总是出现一个 Uncaught Error: [MODULE_MISS]"echarts/config" is not ex ...