2013-05-07 77 views
6

有沒有人遇到過使用指南針與yeoman和grunt的問題,其中樣式表沒有被編譯到他們的版本中。我是新手,並試圖真正理解幕後發生的事情。任何幫助,將不勝感激。Yeoman/Grunt沒有編譯指南針

謝謝!

'use strict'; 
    var lrSnippet = require('grunt-contrib-livereload/lib/utils').livereloadSnippet; 
    var mountFolder = function (connect, dir) { 
    return connect.static(require('path').resolve(dir)); 
    }; 

    module.exports = function (grunt) { 
    // load all grunt tasks 
    require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); 

    // configurable paths 
    var yeomanConfig = { 
     app: 'app', 
     dist: 'dist' 
    }; 

    try { 
     yeomanConfig.app = require('./component.json').appPath || yeomanConfig.app; 
    } catch (e) {} 

    grunt.initConfig({ 
     yeoman: yeomanConfig, 
     watch: { 
     coffee: { 
      files: ['<%= yeoman.app %>/scripts/{,*/}*.coffee'], 
      tasks: ['coffee:dist'] 
     }, 
     coffeeTest: { 
      files: ['test/spec/{,*/}*.coffee'], 
      tasks: ['coffee:test'] 
     }, 
     compass: { 
      files: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'], 
      tasks: ['compass'] 
     }, 
     livereload: { 
      files: [ 
      '<%= yeoman.app %>/{,*/}*.html', 
      '{.tmp,<%= yeoman.app %>}/styles/{,*/}*.css', 
      '{.tmp,<%= yeoman.app %>}/scripts/{,*/}*.js', 
      'images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}' 
      ], 
      tasks: ['livereload'] 
     } 
     }, 
     connect: { 
     options: { 
      port: 9000, 
      // Change this to '0.0.0.0' to access the server from outside. 
      hostname: 'localhost' 
     }, 
     livereload: { 
      options: { 
      middleware: function (connect) { 
       return [ 
       lrSnippet, 
       mountFolder(connect, '.tmp'), 
       mountFolder(connect, yeomanConfig.app) 
       ]; 
      } 
      } 
     }, 
     test: { 
      options: { 
      middleware: function (connect) { 
       return [ 
       mountFolder(connect, '.tmp'), 
       mountFolder(connect, 'test') 
       ]; 
      } 
      } 
     } 
     }, 
     open: { 
     server: { 
      url: 'http://localhost:<%= connect.options.port %>' 
     } 
     }, 
     clean: { 
     dist: { 
      files: [{ 
      dot: true, 
      src: [ 
       '.tmp', 
       '<%= yeoman.dist %>/*', 
       '!<%= yeoman.dist %>/.git*' 
      ] 
      }] 
     }, 
     server: '.tmp' 
     }, 
     jshint: { 
     options: { 
      jshintrc: '.jshintrc' 
     }, 
     all: [ 
      'Gruntfile.js', 
      '<%= yeoman.app %>/scripts/{,*/}*.js' 
     ] 
     }, 
     karma: { 
     unit: { 
      configFile: 'karma.conf.js', 
      singleRun: true 
     } 
     }, 
     coffee: { 
     dist: { 
      files: [{ 
      expand: true, 
      cwd: '<%= yeoman.app %>/scripts', 
      src: '{,*/}*.coffee', 
      dest: '.tmp/scripts', 
      ext: '.js' 
      }] 
     }, 
     test: { 
      files: [{ 
      expand: true, 
      cwd: 'test/spec', 
      src: '{,*/}*.coffee', 
      dest: '.tmp/spec', 
      ext: '.js' 
      }] 
     } 
     }, 
     compass: { 
     options: { 
      sassDir: '<%= yeoman.app %>/styles', 
      cssDir: '.tmp/styles', 
      imagesDir: 'images', 
      javascriptsDir: '<%= yeoman.app %>/scripts', 
      fontsDir: '<%= yeoman.app %>/styles/fonts', 
      importPath: '<%= yeoman.app %>/components', 
      relativeAssets: true 
     }, 
     dist: {}, 
     server: { 
      options: { 
      debugInfo: true 
      } 
     } 
     }, 
     concat: { 
     dist: { 
      files: { 
      '<%= yeoman.dist %>/scripts/scripts.js': [ 
       '.tmp/scripts/{,*/}*.js', 
       '<%= yeoman.app %>/scripts/{,*/}*.js' 
      ] 
      } 
     } 
     }, 
     useminPrepare: { 
     html: '<%= yeoman.app %>/index.html', 
     options: { 
      dest: '<%= yeoman.dist %>' 
     } 
     }, 
     usemin: { 
     html: ['<%= yeoman.dist %>/{,*/}*.html'], 
     css: ['<%= yeoman.dist %>/styles/{,*/}*.css'], 
     options: { 
      dirs: ['<%= yeoman.dist %>'] 
     } 
     }, 
     imagemin: { 
     dist: { 
      files: [{ 
      expand: true, 
      cwd: '<%= yeoman.app %>/images', 
      src: '{,*/}*.{png,jpg,jpeg}', 
      dest: '<%= yeoman.dist %>/images' 
      }] 
     } 
     }, 
     cssmin: { 
     dist: { 
      files: { 
      '<%= yeoman.dist %>/styles/main.css': [ 
       '.tmp/styles/{,*/}*.css', 
       '<%= yeoman.app %>/styles/{,*/}*.css' 
      ] 
      } 
     } 
     }, 
     htmlmin: { 
     dist: { 
      options: { 
      /*removeCommentsFromCDATA: true, 
      // https://github.com/yeoman/grunt-usemin/issues/44 
      //collapseWhitespace: true, 
      collapseBooleanAttributes: true, 
      removeAttributeQuotes: true, 
      removeRedundantAttributes: true, 
      useShortDoctype: true, 
      removeEmptyAttributes: true, 
      removeOptionalTags: true*/ 
      }, 
      files: [{ 
      expand: true, 
      cwd: '<%= yeoman.app %>', 
      src: ['*.html', 'views/*.html'], 
      dest: '<%= yeoman.dist %>' 
      }] 
     } 
     }, 
     cdnify: { 
     dist: { 
      html: ['<%= yeoman.dist %>/*.html'] 
     } 
     }, 
     ngmin: { 
     dist: { 
      files: [{ 
      expand: true, 
      cwd: '<%= yeoman.dist %>/scripts', 
      src: '*.js', 
      dest: '<%= yeoman.dist %>/scripts' 
      }] 
     } 
     }, 
     uglify: { 
     dist: { 
      files: { 
      '<%= yeoman.dist %>/scripts/scripts.js': [ 
       '<%= yeoman.dist %>/scripts/scripts.js' 
      ] 
      } 
     } 
     }, 
     rev: { 
     dist: { 
      files: { 
      src: [ 
       '<%= yeoman.dist %>/scripts/{,*/}*.js', 
       '<%= yeoman.dist %>/styles/{,*/}*.css', 
       'images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', 
       '<%= yeoman.dist %>/styles/fonts/*' 
      ] 
      } 
     } 
     }, 
     copy: { 
     dist: { 
      files: [{ 
      expand: true, 
      dot: true, 
      cwd: '<%= yeoman.app %>', 
      dest: '<%= yeoman.dist %>', 
      src: [ 
       '*.{ico,txt}', 
       '.htaccess', 
       'components/**/*', 
       'images/{,*/}*.{gif,webp}', 
       'styles/fonts/*' 
      ] 
      }] 
     } 
     } 
    }); 

    grunt.renameTask('regarde', 'watch'); 

    grunt.registerTask('server', [ 
     'clean:server', 
     'coffee:dist', 
     'compass:server', 
     'livereload-start', 
     'connect:livereload', 
     'open', 
     'watch' 
    ]); 

    grunt.registerTask('test', [ 
     'clean:server', 
     'coffee', 
     'compass', 
     'connect:test', 
     'karma' 
    ]); 

    grunt.registerTask('build', [ 
     'clean:dist', 
     // 'jshint', 
     // 'test', 
     // 'coffee', 
     'compass:dist', 
     'useminPrepare', 
     'imagemin', 
     'cssmin', 
     'htmlmin', 
     'concat', 
     'copy', 
     // 'cdnify', 
     'ngmin', 
     'uglify', 
     'rev', 
     'usemin' 
    ]); 

    grunt.registerTask('default', ['build']); 
    }; 
+0

當你運行'grunt compass'時,錯誤是什麼? – drinchev 2013-05-07 18:26:45

+0

我確實發現了這個問題。似乎useminPrepare重寫我的concat,但不正確。這'dist/styles/main.css':['app/styles/main.css']應該被忽略,但我不知道如何做到這一點:( – alvincrespo 2013-05-07 18:34:33

+3

沒關係,這是在這個github線程回答:https:// github .com/yeoman/generator-angular/issues/193 – alvincrespo 2013-05-07 19:38:36

回答

6

提供GitHub的問題的解決:

我編輯的咕嚕生成任務和移動'concat'之前'imagemin'現在咕嚕構建工作正常,並正確生成的main.css。