使用gulp自动优化requireJS项目


引言

前端javascript文件越来越多了,依赖加载,文件合并的问题也就随之出现。好在有基于AMD规范的requirejs和国产基于CMD规范的seajs可以管理依赖。但是,使用这样的js来管理js模块的依赖,就会导致页面js文件请求就会变多,为了减少文件请求,一般的文件拼合工具就不起作用了,比如gruntconcat工具。

好在requirejsr.js来解决这个问题。而且使用也简单,容易上手。这篇文章,就是让gulp来自动使用r.js合并优化requireJS项目

在开始之前,我们假定你已经掌握了requirejs的使用,若是不懂,可以看看阮一峰老师的相关文章,写得很好。另外,你需要有node环境和git,那么这些条件都准备充足了,神马都好办了。

开始之前

在开始之前,我们假定你已经掌握了 requirejs以及gulp 的使用,若是不懂,可以看看阮一峰老师的 相关文章 ,写得很好。另外,你需要有 node 环境和 git ,那么这些条件都准备充足了,神马都好办了。

正文

a.准备

编写packejson文件,引入以下依赖
{
  "name": "gulp-requireDemo",
  "version": "0.0.0",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "feier",
  "license": "ISC",
  "dependencies": {
    "amd-optimize": "^0.4.3",                   //关键文件 与gulp与require集成
    "gulp": "^3.8.10",		//gulp主文件
    "gulp-concat": "^2.4.2",   //文件合并
    "gulp-imagemin": "^2.0.0",                  //图片压缩
    "gulp-jshint": "^1.9.0",//js检查
    "gulp-less": "^2.0.1",               //less编译
    "gulp-minify-css": "^0.3.11",//css压缩
    "gulp-rename": "^1.2.0",//重命名
    "gulp-uglify": "^1.0.2",//文件压缩
    "imagemin-pngcrush": "^4.0.0"
  },
  "main": "index.js",
  "directories": {
    "test": "test"
  },
}

b,编写gulp.file文件

//引入gulp
var gulp = require('gulp');


//引入组件
var concat = require('gulp-concat');           //合并
var jshint = require('gulp-jshint');           //js规范验证
var uglify = require('gulp-uglify');           //压缩
var rename = require('gulp-rename');          //文件名命名
var amdOptimize = require("amd-optimize");           //require优化
var watch = require('gulp-watch');




//脚本检查
gulp.task('lint', function () {
    gulp.src('./src/js/**/*.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'));
});


//require合并
gulp.task('rjs', function () {
    gulp.src('./src/js/**/*.js')
        .pipe(amdOptimize("main", {
 //require config
            paths: {
                "jquery": "../../libs/jquery/dist/jquery.min",
                "jquery.serializeJSON": "../../libs/jquery.serializeJSON/jquery.serializejson.min",
                "sug": "src/js/suggestion/suggestion",
                "validate": "../util/src/js/util/validate",
                "urlParam": "../util/src/js/util/url.param"
            },
            shim: {
                "jquery.serializeJSON": ['jquery']
            }
        }))
        .pipe(concat("index.js"))           //合并
        .pipe(gulp.dest("dist/js"))          //输出保存
        .pipe(rename("index.min.js"))          //重命名
        .pipe(uglify())                        //压缩
        .pipe(gulp.dest("dist/js"));         //输出保存
});

gulp.task('default', function () {
    //监听js变化
    gulp.watch('./src/js/**/*.js', function () {       //当js文件变化后,自动检验 压缩
        //gulp.run('lint', 'scripts');
        gulp.run('lint', 'rjs');
    });


});


 


c.执行

现在,可以利用控制台等终端命令进入到 gulpfile.js目录下 执行gulp 命令,  当我们改变任何js文件时,gulp都会自动利用rjs 帮我们合并压缩,。

总结

利用gulp,我们可以让系统自动的给我们处理我们想要的功能,除此之外,还可以编译scss less 压缩图片等等,官方上有无数插件可以使用,极大的方便了前端开发。







  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Gulp是一种前端自动化工具,它可以帮助前端开发人员自动完成一些重复性工作,例如压缩CSS和JavaScript文件、自动刷新浏览器、合并文件等。 使用Gulp需要先安装Node.js和npm,然后使用npm安装Gulp。安装完成后,可以在项目的根目录下创建一个名为gulpfile.js的文件,该文件定义了Gulp要执行的任务和任务的具体操作。 在gulpfile.js,可以使用Gulp提供的API来定义任务。例如,可以使用gulp.task()方法定义一个任务,该方法接受两个参数:任务的名称和任务要执行的操作。可以使用gulp.src()方法指定要处理的文件,然后使用各种Gulp插件来执行各种操作,例如gulp-concat用于合并文件,gulp-uglify用于压缩JavaScript文件等。 最后,可以使用gulp.dest()方法将处理后的文件保存到指定目录。定义好任务后,可以在终端使用gulp命令来执行任务,Gulp自动执行任务并输出相关日志信息。 ### 回答2: Gulp是一个前端自动化工具,它通过编写简洁、易于理解的代码来帮助开发者自动前端开发的各种任务。 首先,Gulp使用简单且灵活。它使用流的概念,让开发者能够通过将任务连接在一起构建整个开发流程。开发者可以定义各种任务,如压缩文件、合并文件、编译代码等等,然后通过管道将这些任务链接在一起。这种方式使得构建前端项目变得非常容易,同时也让开发者能够根据自己的需求定制任务流程。 其次,Gulp有大量的插件可供选择。Gulp的插件系统非常强大,社区有数以千计的插件可用。这些插件可以帮助开发者解决各种问题,如自动添加浏览器前缀、压缩文件、优化图片等等。开发者可以根据自己的需求选择合适的插件使用,从而提高工作效率。 另外,Gulp还具有良好的生态系统。无论是官方文档还是社区文档,都非常详细且易于理解。开发者可以很容易地找到所需的信息和教程,学习如何使用Gulp优化自己的工作流程。 总的来说,Gulp是一个功能强大且易于使用的前端自动化工具。它能够帮助开发者提高工作效率,简化开发流程,同时也具有丰富的插件和优秀的生态系统。无论是小型项目还是大型项目Gulp都是一个非常好的选择。 ### 回答3: Gulp是一个前端自动化工具,用于简化开发流程和提高工作效率。它基于流(stream)的概念,可以自动处理优化前端工作的许多重复任务。 首先,通过在项目配置gulpfile.js文件,可以定义各种任务(task)和相应的操作。可以使用Gulp来执行各种编译、压缩、合并、重命名、清理等操作,例如压缩CSS和JavaScript文件、编译Sass或Less、优化图像等等。这些任务可以按照开发者的需求进行自定义配置,满足不同项目的要求。 Gulp使用也非常简单,只需要通过命令行运行gulp命令并指定要执行的任务即可。当有文件变动时,Gulp可以自动监听文件的变化并重新执行相应的任务,实时更新项目的输出。 此外,Gulp还支持插件生态系统,拥有大量的插件可供开发者选择使用。这些插件可以用于执行各种任务,例如自动生成CSS前缀、合并相同类型的文件、启动本地开发服务器等等。 总的来说,Gulp通过简化和自动前端开发流程,大大提高了开发效率。它的简单易用和丰富的插件生态系统使得开发者能够根据项目需求快速搭建和优化前端工作流程。使用Gulp可以减少重复劳动,提高代码质量和开发效率,因此成为前端开发不可或缺的工具之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值