Gulp自动化任务及nvm、npm常用命令
项目环境配置
nvm:
node版本管理工具,安装和环境变量
cmd常用命令:
· nvm use [version]: 切换至指定版本的node
· nvm install node:安装最新版本的 node.js,nvm i == nvm install
· nvm install [version]:安装指定版本的node.js
· nvm use [version]:安装某个版本的node
· nvm list:列出了当前安装了那些版本的node
· nvm uninstall [version]: 卸载指定版本的node
· nvm node_mirror [url]: 设置 nvm 的镜像
· nvm npm_mirror [url]: 设置 npm 的镜像
npm:
在安装node的时候会自动安装
包安装工具
cmd常用命令:
· npm -v:查看当前使用的npm版本
· npm install [express]:本地安装指定包,需要使用require()导入包
· npm install [express] -g:全局安装指定包,可以再命令行中使用
· npm uninstall [package]: 卸载指定包,本地
· npm uninstall [package] -g: 卸载指定包,全局
· npm update [package]: 更新指定包,本地
· npm update [package] -g: 更新指定包,全局3
· npm search [package]: 搜索包
3. gulp
自动化流程管理工具
使用npm安装:npm install gulp -g
cmd常用命令:
· npm init:创建package.json文件
· npm install [package] --save-dev:会自动记录到package.json文件中
gulpfile.js示例1(gulp4):
备注:最新 gulp5 任务模块 gulpfile.js Github地址:https://github.com/li-jingxuan/gulp-template
//require("包名"):导入包
// 导入gulp插件包
var gulp = require("gulp");
// css压缩插件包
var cssnano = require("gulp-cssnano");
// 文件重命名插件包
var rename = require("gulp-rename");
// gulp-uglify压缩javascript文件
var uglify = require("gulp-uglify");
// 合并js文件,减少网络请求
var concat = require("gulp-concat");
// 对图片文件进行缓存
var cache = require("gulp-cached");
// gulp-imagemin压缩图片文件(包括PNG、JPEG、GIF和SVG图片)
var imagemin = require("gulp-imagemin");
// 动态刷新浏览器的插件
var bs = require("browser-sync").create();
// 将scss压缩转换为css
var scss = require("gulp-sass");
// 这个插件中有一个方法log,可以打印出当前js的错误信息
var util = require("gulp-util");
// 当压缩后的js出现问题的时候,能够定位到具体行(因为压缩后的js全部在一行)
var sourcemaps = require("gulp-sourcemaps");
// 创建一个字典,存放各种路径
var path = {
"html": "./templates/**/",
"css": "./src/css/**/",
"js": "./src/js/**/",
"images": "./src/image/",
"css_dist": "./dist/css_dist/",
"js_dist": "./dist/js_dist/",
"images_dist": "./dist/image_dist/"
};
//对src/css/目录下的所有.css文件进行压缩并且存放在dist/css/目录下
css = function () {
return gulp.src(path.css + "*.css")
.pipe(cssnano())
.pipe(rename({"suffix": ".min"}))
.pipe(gulp.dest(path.css_dist))
.pipe(bs.stream)
};
// 对src/css/目录下的所有.css文件进行压缩并且存放在dist/css/目录下
scss = function () {
return gulp.src(path.css + "*.scss")
.pipe(scss())
.pipe(rename({"suffix": ".min"}))
.pipe(gulp.dest(path.css_dist))
.pipe(bs.stream())
};
// 对/templates/文件夹下所有的.html文件进行加载(**/:表示任意多级子文件夹)
html = function () {
return gulp.src(path.html + "*.html")
.pipe(bs.stream())
};
// 对src/js/目下的所有.js文件进行压缩并且存放在dist/js/目录下
js = function () {
return gulp.src(path.js + "*.js")
// 当js出问题了的时候,能够定位到哪一行
// 在文件加载前调用一下,初始化
.pipe(sourcemaps.init())
// .on("error",util.log()):当js产生错误是,打印出日志,不退出任务
.pipe(uglify().on("error", util.log))
// 文件重命名
.pipe(rename({"suffix": ".min"}))
// 在文件全部处理完之后,在调用write()方法
.pipe(sourcemaps.write())
.pipe(gulp.dest(path.js_dist))
// 修改文件后重新加载
.pipe(bs.stream())
};
// 对src/images/目下的所有.images文件进行压缩并且存放在dist/images/目录下
images = function () {
return gulp.src(path.images + "*.*")
// 压缩图片文件需要先使用cache()将图片缓存起来,在使用imagemin()进行压缩
.pipe(cache(imagemin()))
.pipe(gulp.dest(path.images_dist))
// 修改文件后重新加载
.pipe(bs.stream())
};
// 对文件修改进行监听
watch = function () {
/*
* gulp.watch:创建一个监听任务
* 参数1:需要监听的文件(可以监听一个文件夹下所有的文件)
* 参数2:监听到文件修改后,需要执行的gulp任务或者监听方法
*/
gulp.watch(path.html + "*.html", html);
gulp.watch(path.css + "*.scss", scss);
gulp.watch(path.css + "*.css", css);
gulp.watch(path.js + '*.js', js);
gulp.watch(path.images + '*.*', images)
};
// 初始化 browser-sync 的任务
bs_gulp = function () {
bs.init({
'server': {
// 设置服务器的根目录
'baseDir': './',
// 指定默认打开的文件
index: '/templates/news/index.html'
}
});
};
gulp.task('default', gulp.parallel(bs_gulp, watch));
// //当转换为django模板后使用此默认任务
//gulp.task('default',gulp.parallel(watch));
gulpfile.js示例2(gulp3):
//require("包名"):导入包
// 导入gulp插件包
var gulp = require("gulp");
// css压缩插件包
var cssnano = require("gulp-cssnano");
// 文件重命名插件包
var rename = require("gulp-rename");
// gulp-uglify压缩javascript文件
var uglify = require("gulp-uglify");
// 合并js文件,减少网络请求
var concat = require("gulp-concat");
// 对图片文件进行缓存
var cache = require("gulp-cached");
// gulp-imagemin压缩图片文件(包括PNG、JPEG、GIF和SVG图片)
var imagemin = require("gulp-imagemin");
// 动态刷新浏览器的插件
var bs = require("browser-sync").create();
// 将scss压缩转换为css
var scss = require("gulp-sass");
// 这个插件中有一个方法log,可以打印出当前js的错误信息
var util = require("gulp-util");
// 当压缩后的js出现问题的时候,能够定位到具体行(因为压缩后的js全部在一行)
var sourcemaps = require("gulp-sourcemaps");
// 创建一个字典,存放各种路径
var path = {
"html":"./templates/**/",
"css":"./src/css/**/",
"js":"./src/js/**/",
"images":"./src/image/",
"css_dist":"./dist/css_dist/",
"js_dist":"./dist/js_dist/",
"images_dist":"./dist/image_dist/"
};
//对src/css/目录下的所有.css文件进行压缩并且存放在dist/css/目录下
gulp.task("css",function () {
gulp.src(path.css + "*.css")
.pipe(cssnano())
.pipe(rename({"suffix":".min"}))
.pipe(gulp.dest(path.css_dist))
// 修改文件后重新加载
.pipe(bs.stream())
});
// 对src/css/目录下的所有.css文件进行压缩并且存放在dist/css/目录下
gulp.task("scss",function () {
gulp.src(path.css + "*.scss")
.pipe(scss())
.pipe(rename({"suffix":".min"}))
.pipe(gulp.dest(path.css_dist))
// 修改文件后重新加载
.pipe(bs.stream())
});
// 对/templates/文件夹下所有的.html文件进行加载(**/:表示任意多级子文件夹)
gulp.task("html",function () {
gulp.src(path.html + "*.html")
// 修改文件后重新加载
.pipe(bs.stream())
});
// 对src/js/目下的所有.js文件进行压缩并且存放在dist/js/目录下
gulp.task("js",function () {
gulp.src(path.js + "*.js")
//当js出问题了的时候,能够定位到哪一行
// 在文件加载前调用一下
.pipe(sourcemaps.init())
// .on("error",util.log()):当js产生错误是,打印出日志,不退出任务
.pipe(uglify().on("error",util.log))
.pipe(rename({"suffix":".min"}))
// 在文件全部处理完之后,在调用write()方法
.pipe(sourcemaps.write())
.pipe(gulp.dest(path.js_dist))
// 修改文件后重新加载
.pipe(bs.stream())
});
// 对src/images/目下的所有.images文件进行压缩并且存放在dist/images/目录下
gulp.task("images",function () {
gulp.src(path.images + "*.*")
// 压缩图片文件需要先使用cache()将图片缓存起来,在使用imagemin()进行压缩
.pipe(cache(imagemin()))
.pipe(gulp.dest(path.images_dist))
// 修改文件后重新加载
.pipe(bs.stream())
});
// 对文件修改进行监听
gulp.task("watch",function () {
/*
* gulp.watch:创建一个监听任务
* 参数1:需要监听的文件(可以监听一个文件夹下所有的文件)
* 参数2:监听到文件修改后,需要执行的gulp任务
*/
gulp.watch(path.html + "*.html",["html"]);
gulp.watch(path.css+"*.scss",['scss']);
gulp.watch(path.css+"*.css",['css']);
gulp.watch(path.js+'*.js',['js']);
gulp.watch(path.images + '*.*',['images'])
});
// 初始化 browser-sync 的任务
gulp.task("bs",function () {
bs.init({
'server':{
// 设置服务器的根目录
'baseDir':'./',
index:'/templates/news/index.html' // 指定默认打开的文件
}
//port:8050 // 指定访问服务器的端口号
});
});
// gulp.task('test',function () {
// console.log('hello word!');
// });
// 创建一个默认的任务
// gulp.task("default",['bs','watch']);
// 如果使用了django模板渲染,则不能使用 'bs' 服务,只能使用['watch']任务监听文件修改
gulp.task('default',['watch']);
Gulp自动化任务及nvm、npm常用命令的更多相关文章
- nodejs nvm npm常用命令
---恢复内容开始--- 一行命令搞定node.js 版本升级 node有一个模块叫n(这名字可够短的...),是专门用来管理node.js的版本的. 首先安装n模块: npm install -g ...
- npm常用命令
npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...
- npm常用命令整理
npm是一个NodeJS包管理跟分发工具,已经成为了非官方的发布node模块(包)的标准.它可以帮助我们解决代码部署上的一些问题,将开发者从繁琐的包管理工作中(版本.依赖等)解放出来,更加专注于功能上 ...
- AngularJS 1.x系列:Node.js安装及npm常用命令(1)
1. Node.js安装 1.1 Node.js下载 Node.js官网:https://nodejs.org 当前下载版本(含npm):Latest LTS Version: v6.10.3 (in ...
- npm无反应的问题&npm常用命令
RT: windows安装完nodejs后做了相关环境变量配置后,cmd输入npm命令无反应,就光标一直闪,百度了半天终于找到解决办法 解决方法:C:\Users\Administrator(或你的账 ...
- 【前端_React】npm常用命令
安装模块(包): //全局安装 $ npm install 模块名 -g //本地安装 $ npm install 模块名 //一次性安装多个 $ npm install 模块1 模块2 模块n -- ...
- npm常用命令及其node相关工具汇总
它是一个事件驱动异步I/O单进程的服务端JS环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 浏览器是JS的前端运行环境. Node.js是JS的后端运行环 ...
- 【原】npm 常用命令详解
今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...
- npm使用过程中的一些错误解决办法及npm常用命令
node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外的网站 ...
随机推荐
- 【剑指Offer】链表中倒数第k个节点 解题报告(Python)
[剑指Offer]链表中倒数第k个节点 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-intervie ...
- 【LeetCode】868. Binary Gap 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 线性扫描 日期 题目地址:https://leetc ...
- 【LeetCode】297. Serialize and Deserialize Binary Tree 解题报告(Python)
[LeetCode]297. Serialize and Deserialize Binary Tree 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode ...
- 【LeetCode】138. Copy List with Random Pointer 复制带随机指针的链表 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人公众号:负雪明烛 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https:/ ...
- javaScript系列 [43]-TS、Class and ES5
本文讨论Typescript中的Class同ES5构造函数的对应关系,涉及TypeScript的诸多语法.构造函数.面向对象以及原型对象等相关知识点细节,本文只简单对比并不进行深入展开. TypeSc ...
- WinForm应用程序的开机自启、记住密码,自动登录的实现
一.思路: 1.开机自启,自然是需要用到注册表,我们需要把程序添加到电脑的注册表中去 2.记住密码,自动登录,开机自启,在页面的呈现我们都使用复选框按钮来呈现 3.数据持久化,不能是数据库,可以是sq ...
- Asp.Net Core 使用Monaco Editor 实现代码编辑器
在项目中经常有代码在线编辑的需求,比如修改基于Xml的配置文件,编辑Json格式的测试数据等.我们可以使用微软开源的在线代码编辑器Monaco Editor实现这些功能.Monaco Editor是著 ...
- 【JAVA今法修真】 第八章 仙道万维网 圣地元宇宙
您好,我是南橘,万法仙门的掌门,刚刚从九州世界穿越到地球,因为时空乱流的影响导致我的法力全失,现在不得不通过这个平台向广大修真天才们借去力量.你们的每一个点赞,每一个关注都是让我回到九州世界的助力,兄 ...
- [学习笔记] Oracle字段类型、建表语句、添加约束
SQL语句介绍 数据定义语言(DDL),包括 CREATE. ALTER. DROP等. 数据操纵语言(DML),包括 INSERT. UPDATE. DELETE. SELECT - FOR UPD ...
- python selenium + web自动化,切换到新的窗口,元素定位不到?
问题描述: 自动化由首页切换到分页面,打开了一个新的窗口,不过,定位不到这个窗口的元素,通过开发者工具是可以查到这个元素的 原因是: 因为窗口句柄还停留在上一个页面,所以导致无法定位元素.报错 &qu ...