Gruntfile-zip.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. module.exports = function(grunt) {
  2. 'use strict';
  3. var path = require('path');
  4. var pkg = require('../package');
  5. var proj_namespace = path.join(pkg.description, pkg.name, pkg.version, '/');
  6. var ASSETS_URL = 'http://assets.dwstatic.com/'+proj_namespace;
  7. var concatScript = require('./_concat-scriptlink');
  8. var configObj = {
  9. clean: {
  10. zip: ["assets"]
  11. },
  12. copy: {
  13. zip_dest: {
  14. expand: true,
  15. cwd: 'dest/',
  16. src: ['js/{,*/}*', 'img/{,*/}*', 'css/*'],
  17. dest: 'assets/dest'
  18. },
  19. zip_src: {
  20. expand: true,
  21. cwd: 'src/',
  22. src: ['**', '!sass', '!sass/{,*/}*', '!css/*.map', '!img/psd','!img/psd/{,*/}*'],
  23. dest: 'assets/src'
  24. }
  25. },
  26. concat: {
  27. trans_html: {
  28. options: {
  29. process: function(src, filepath) {
  30. var regex = /((href|src)=['"][\s]*)(?!http[s]?\:|\#|\/)([\?\#\=\/\w._-]*)([\s]*['"])/g;
  31. return src.replace(regex, '$1'+ASSETS_URL+'$3$4');
  32. }
  33. },
  34. files: [{
  35. expand: true,
  36. cwd: 'dest/',
  37. src: '*.html',
  38. dest: 'assets/dest/'
  39. }]
  40. }
  41. },
  42. compress: {
  43. zip: {
  44. options:{
  45. archive: 'assets.zip'
  46. },
  47. files: [{
  48. expand: true,
  49. cwd: 'assets/',
  50. src: '**'
  51. }]
  52. }
  53. }
  54. };
  55. // release后,zip打包
  56. grunt.task.registerTask('zip', function(){
  57. grunt.config.merge(configObj)
  58. grunt.task.run(['clean:zip', 'copy:zip_src', 'copy:zip_dest', 'concat:trans_html', '__concatScript', 'compress:zip', 'clean:zip'])
  59. })
  60. // 只替换线上路径和合并路径,不打包
  61. grunt.task.registerTask('trans', function(){
  62. grunt.config.merge(configObj)
  63. grunt.task.run(['clean:zip', 'copy:zip_src', 'copy:zip_dest', 'concat:trans_html', '__concatScript'])
  64. })
  65. // 合并指定的脚本链接
  66. grunt.registerTask('__concatScript', function(){
  67. concatScript()
  68. })
  69. };