gulp和webpack初探

gulp 真正“流程”化工具

我记得实习刚刚进公司看到grunt,还是有点蒙,之前一直是本地开发,游览器F5,没想到前端也需要“编译工具”。所以grunt一直给我的感觉是“编译工具”,你写的很多代码还不能直接“执行”,需要这一个工具去“编译”才能上线。它去自动化了很多东西,我之后也写过一个公司用的grunt插件,只需要配置,之后加入任务执行,很方便。但当我看到gulp的代码的时候(还没开始看文档,API),我突然意识到很多grunt“不自然”的设计,gulp真正的做到了清晰的流程化的构建。

gulp.task(‘default‘, function() {
  // 将你的默认的任务代码放在这
  gulp.src(‘client/*.js‘)
  .pipe(replace(‘bar‘, ‘foo‘))
  .pipe(minify())
  .pipe(gulp.dest(‘build/‘));
});

这是我仿照官网写的DEMO,对很多工程师来说pipe这个命名就很清晰了,它就是借鉴了unix的管道概念,前面文件输出给后面文件,这个也就是gulp对比grunt最大的改进,更加简单明了,据说这样也加快速度,还没有在实际项目中运用过,所以没有对比过。不管这种设计的确可以说是grunt的替代品了。

至于插件方面也不用担心,gulp的插件也很强大,基本上项目常用的都有。

webpack 万剑归宗

webpack也很火,它官网的图也介绍了它的作用,所有前端东西都打包成js文件。初学了它,我想它解决的问题就是现在的前端各种各样的“语言”,什么sass呀,coffeescript,还有框架模板,语法糖什么的,各有各的编译工具,而webpack的loader可以通杀,安装好相应的工具,它就可以统统的按你的想法打包在一起。
比如vue,就可以放在单文件里,在团队中做到组件开发,甚至各个人写不同的模板都行。最后使用webpack将各个组件打包在一起。
webpack的配置文件:

var path = require("path");

module.exports = {
    entry: ‘./static/entry.js‘, //演示单入口文件
    output: {
        path: path.join(__dirname, ‘out‘),  //打包输出的路径
        filename: ‘bundle.js‘,              //打包后的名字
        publicPath: "./static/out/"                //html引用路径,在这里是本地地址。
    },
    // 新添加的module属性
    module: {
        loaders: [
      // 解析.vue文件
            { test: /\.vue$/, loader: ‘vue‘ },
        // 转化ES6的语法
            { test: /\.js$/, loader: ‘babel‘, exclude: /node_modules/ },
        // 编译css并自动添加css前缀
            { test: /\.css$/, loader: ‘style!css!autoprefixer‘},
        //.scss 文件想要编译,scss就需要这些东西!来编译处理
        //install css-loader style-loader sass-loader node-sass --save-dev
            { test: /\.scss$/, loader: ‘style!css!sass?sourceMap‘},
        // 图片转化,小于8K自动转化为base64的编码
            { test: /\.(png|jpg|gif)$/, loader: ‘url-loader?limit=8192‘},
        //html模板编译?
            { test: /\.(html|tpl)$/, loader: ‘html-loader‘ },
        ]
    },
    // .vue的配置。需要单独出来配置
    vue: {
        loaders: {
            css: ‘style!css!autoprefixer‘,
            html:‘html-loader‘
        }
    },
};

webpack可能对于单页应用的开发和管理很有帮助,对于简单的html的开发,gulp就已经绰绰有余了。

时间: 2024-07-31 10:11:14

gulp和webpack初探的相关文章

【简单理解】gulp和webpack的区别

Gulp和Webpack的基本区别: gulp可以进行js,html,css,img的压缩打包,是自动化构建工具,可以将多个js文件或是css压缩成一个文件,并且可以压缩为一行,以此来减少文件体积,加快请求速度和减少请求次数:并且gulp有task定义处理事务,从而构建整体流程,它是基于流的自动化构建工具. Webpack是前端构建工具,实现了模块化开发和文件处理.他的思想就是“万物皆为模块”,它能够将各个模块进行按需加载,不会导致加载了无用或冗余的代码.所以他还有个名字叫前端模块化打包工具.

gulp、webpack学习笔记

前言:这两天天学了gulp和webpack的基本使用方法,其实对于这些工具,了解基本的用法.熟悉一些常用配置和方法就足够日常使用了.更复杂的等到需要时才再查相关文档就可以了. gulp和webpack虽然有相似的功能,比如压缩.合并文件,但应该算是两种类型的工具. gulp作为自动化构建工具主要的功能就是自动压缩.css转换.合并资源文件,减少http请求,这些功能对于一般的前端项目而言已经足够使用了.而且使用起来也更加方便, 在gulpfile.js引入组件并创建任务便可以很方便的使用. 而w

gulp与webpack的区别

常有人拿gulp与webpack来比较,知道这两个构建工具功能上有重叠的地方,可单用,也可一起用,但本质的区别就没有那么清晰. gulp gulp强调的是前端开发的工作流程,我们可以通过配置一系列的task,定义task处理的事务(例如文件压缩合并.雪碧图.启动server.版本控制等),然后定义执行顺序,来让gulp执行这些task,从而构建项目的整个前端开发流程. PS:简单说就一个Task Runner webpack webpack是一个前端模块化方案,更侧重模块打包,我们可以把开发中的

[转]基于gulp和webpack的前端工程化

本文样例代码 :https://github.com/demohi/learning-gulp 本文主要简单介绍一下基于gulp和webpack的前端工程化. 技术栈 React.js reFlux Node.js 我们的需求 基于CommonJS模块化开发 基于React.js的组件化开发(JSX) 为保证组件的复用,css需要打包到js中 有国际化需求,静态文件需要部署在CDN上面 工程化工具的选择 gulp(基于stream的构建工具,与grunt相比,速度快且可编程) webpack(前

JavaScript自动化构建工具入门----grunt、gulp、webpack

蛮荒时代的程序员: 做项目的时候,会有大量的js 大量的css   需要合并压缩,大量时间需要用到合并压缩 在前端开发中会出现很多重复性无意义的劳动 自动化时代的程序员: 希望一切都可以自动完成 安装 常用插件.压缩插件.合并插件等.  用插件实现 功能无限扩展 简单介绍三种工具 grunt 是js任务管理工具(自动化构建工具)    -- Grunt官网 戳这里 优势:出来早 社区成熟  插件全 缺点:配置复杂   效率低 (cpu占用率高) -------------------------

Gulp和Webpack对比

在现在的前端开发中,前后端分离.模块化开发.版本控制.文件合并与压缩.mock数据等等一些原本后端的思想开始逐渐渗透到“大前端”的开发中.前端开发过程越来越繁琐,当今越来越多的网站已经从网页模式进化到了 Webapp 模式.它们运行在现代的高级浏览器里,使用 HTML5. CSS3. ES6 等更新的技术来开发丰富的功能,网页已经不仅仅是完成浏览的基本需求,并且Webapp通常是一个单页面应用(SPA),每一个视图通过异步的方式加载,这导致页面初始化和使用过程中会加载越来越多的 JavaScri

gulp和webpack的区别,是一种工具吗?

背景: 最近收到很多童鞋的问题:gulp和webpack 什么关系,是一种东西吗?可以只用gulp,不用webpack吗 或者反过来? 基于此问: 我简单归结了一下区别和概念,让需要的同学阅读理解,从而不把时间浪费到这种模糊不清的选择问题上! --------------------------------------------------------------------------------------------------------------------------------

前端开发自动化工作流工具:JavaScript自动化构建工具grunt、gulp、webpack介绍

前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为庞大和复杂,代码维护.打包.发布等流程也变得极为繁琐,同时浪费的时间和精力也越来越多,当然人为的错误也随着流程的增加而增加了更多的出错率.致使每一个团队都希望有一种工具,能帮助整个团队在开发中能精简流程.提高效率.减少错误率.随之讨论自动化部署也越来越多,并且国内很多大型团队也都有自己成熟的自动化部

gulp,grunt,webpack 菜鸟整理

首先准确说把webpack放在这儿不太好,因为webpack准确说更有点类似require,sea这类的模块化工具:而前两者更偏向于压缩混淆之类: 三者下载npm包之后,都需要各自的config文件: grunt的congfig文件书写格式是键值,类似一种配置的编写,gulp是回掉函数,类似编程的编写:wepack的配置书写类似一种common规范: 直接代码示例: grunt module.exports = function (grunt) {    require("load-grunt-