压缩优化

开发时候的模式,各个模块其实都被加到了head部分,然后变成单独的请求,对于开发环境,我们有一个优化的重点,就是减少请求数。所以我们要使用工具,将开发环境的js文件进行合并压缩。

r.js

官方提供的一个优化工具,推荐自己再写一个build.js文件。比如:

  1. ({
  2. baseUrl: "./",
  3. name: "scripts/config",
  4. mainConfigFile: "scripts/config.js",
  5. out: "main-built.js",
  6. optimize: "none"
  7. })

然后使用r.js -o build.js, 就可以进行文件的合并了。但这里是所有文件都在本地的情况。且压缩的是require依赖部分,实际请求数还是两个,另一个是require.js本身。如果需要合并为一个,再进行一次concat操作。

build.js使用的选项可以在all configuration options查询。

gulp

gulp-requirejs

项目地址:gulp-requirejs。目前处于out-of-date状态。

使用方法:

  1. var gulpRequire = require('gulp-requirejs');
  2. // optimize requireJS
  3. gulp.task('optimize', function() {
  4. gulpRequire({
  5. baseUrl: "src",
  6. include: ['scripts/config'],
  7. mainConfigFile: "src/scripts/config.js",
  8. out: "main-built.js",
  9. optimize: "none"
  10. })
  11. .pipe(gulp.dest('dist/'));
  12. });

gulp-requirejs-optimize

项目地址:gulp-requirejs-optimize

grunt

grunt-contrib-requirejs

项目地址:grunt-contrib-requirejs

使用方法:

  1. grunt.loadNpmTasks('grunt-contrib-requirejs');
  2. requirejs: {
  3. compile: {
  4. options: {
  5. baseUrl: "path/to/base",
  6. mainConfigFile: "path/to/config.js",
  7. name: "path/to/almond", // assumes a production build using almond
  8. out: "path/to/optimized.js"
  9. }
  10. }
  11. }

原文: https://leohxj.gitbooks.io/front-end-database/content/javascript-modules/requirejs/requirejs-optimizer.html