构建一个前端自动化开发环境

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构建一个前端自动化开发环境相关的知识,希望对你有一定的参考价值。

一:NPM

一:NPM(node package manager)

  npm是node的包管理工具,主要对node包进行安装、更新、卸载、查看、搜索、发布等。

二:NPM安装

  有两种安装,一种本地安装,package下载到当前目录,只有当前目录可使用         npm install grunt-cli

        另一种全局安装,package下载到系统指定目录下,能够在所有目录下使用      npm install -g grunt-cli

        安装成功后,会多出一个node_modules目录,grunt-cli就安装在此目录

   如果项目依赖很多的package,可以在package.json中声明,然后执行搞定 npm install

三 NPM卸载

 npm unistall grunt-cli

四 查看安装了哪里包

  npm ls

  查看全局 npm ls -g

  查看指定package   npm ls  grunt-cli ,更详细信息 npm info grunt-cli

五 更新

  npm update grunt-cli

六 搜索

  npm search grunt-cli

七 发布和NPM配置,自己也没测试

二:package.json

如果我们依赖于很多包,每次npm install XX 很费事,可以直接在package.json中声明,

package.json里面包含了与项目有关的所有元数据,是给NPM信息的,识别项目以及处理改项目的依赖。还包括了项目描述,版本、作者等。(文档中所有的配置,必须是json,不是js对象)

package.json的字段:(如果没有name version无法install)

  {

  "name":"(必须)package名字(不能出现“. 、_”)",

  "version":"(必须)package版本,可以以‘v’开头“,

  "description":"描述",

  "author":"作者",

  "dependencies":"package依赖的模块,别人要使用package,要安装的东西,依赖模块会安装到node_modules目录下",

  "devDependencies":"package的开发模块,即别人在这个package上进行开发",

  "license":"ISC   项目许可协议",

  "main":"相对于根目录的文件路径,配置一个文件指向模块的入口程序"

  }

  还有一些配置可在   http://www.mujiang.info/translation/npmjs/files/package.json.html 查看

  设置好了,npm install 执行安装依赖,(package里面我已经设置安装了gulp)

 三 gulp

  gulp是前端对代码进行自动化构建的工具,可以对网站资源进行优化,可以自动完成对js sass less html image css等文件的测试,检查,合并,压缩,格式化、浏览器自动刷新、部署文件生成、监听文件在改动后重复步骤。

  gulp本身不会做任何事,我们可以编写任务,gulp去执行任务

  新建gulpfile.js,测试gulp是否正常

var gulp = require(‘gulp‘);
gulp.task(‘default‘, function() {
  
});

技术分享,表示成功。

编译一个less为例:

我的项目文档结构是这样的

技术分享

gulpfile.js所有的任务都在这里面定义:

//require加载模块,导入工具包(node_modules对应的模块)
var
gulp = require(‘gulp‘), less = require(‘gulp-less‘); //定义一个testLess的任务 gulp.task(‘testLess‘, function () { gulp.src(‘less/*.less‘) //任务针对的文件,匹配所有的less文件,创建一个stream对象,传递给less()函数 .pipe(less()) //该任务的调用模块,less()对数据修改后会再返回一个stream对象,传递给gulp.dest() .pipe(gulp.dest(‘dist‘)); //将传输进来的数据生成文件或文件夹,不存在的文件夹将会被创建 会在dist文件下生成css }); gulp.task(‘default‘,[‘testLess‘]); //定义默认任务

//gulp在没有提供任务名的时候,会执行default任务,我们把testLess任务放到default前执行,所有执行$gulp,会编译less文件

  pipe—传递数据给插件就可以

  gulp.task(name,[deps],fn)定义任务,name任务名称,deps依赖任务名称,fn回调函数

  gulp.src(globs)  执行任务处理的文件  globs:处理的文件路径字符串或是字符串数组

  gulp.dest(path)  处理完后文件生成的路径

  //文件监控,gulp可以监控一个或一组文件,当文件发生变化触发一个任务

  gulp.watch(第一个参数:匹配待监控的文件,第二个参数是一个数组(文件变化时执行的任务队列)或回调函数   )

  

  gulp常用插件:http://www.cnblogs.com/kelsen/p/4643762.html  

   

  整个会按这个教程走一遍,gogo  开始。。。http://www.cnblogs.com/kelsen/p/4993169.html

 

参考:  http://www.cnblogs.com/chyingp/p/npm.html

     http://www.cnblogs.com/kelsen/p/4608119.html

     http://www.mujiang.info/translation/npmjs/files/package.json.html  

     http://www.ydcss.com/archives/18

     http://www.cnblogs.com/kelsen/p/4643762.html

以上是关于构建一个前端自动化开发环境的主要内容,如果未能解决你的问题,请参考以下文章

前端自动构建工具-gulp

前端工程化

Gulp构建前端自动化工作流

分享前端开发常用代码片段

Webpack 简介

收藏|分享前端开发常用代码片段