0

私はうなり声を学んでいます、そしてそれは素晴らしいです!

バックグラウンド:

私のプロジェクトは SASS ( .scss) を使用して構築されており、grunt のcompassプラグインを使用.scssして複数の出力を 1 つにコンパイルし.CSSています。

問題:

.cssファイルが関連付けられているjQueryプラグインを使用しています。Grunt に次のようにさせたい:

  1. *.SCSS をコンパイルします。frontend.css
  2. plugin.css完了したら、の最後に連結しますfrontend.css
  3. 縮小しfrontend.cssます。

grunt compass のコンパイル後に実行される CSS の concat ルールを追加しようとしました。concat ルールを以下に示します。

concat: {
  css: {
    src: ['www/assets/css/frontend.css',
          'bower_components/bootstrap-datepicker/css/plugin.css'],
    dest: 'www/assets/css/frontend.css'
  }    
}

grunt タスクは次のようになります。

  grunt.registerTask('default', ['newer:concat:vendors', 'copy', 'uglify', 'compass:dist', 'newer:concat:css', 'newer:cssmin', 'newer:imagemin']);

私が使用している Grunt プラグインのリストは次のとおりです。

 // Load Grunt Tasks 
 grunt.loadNpmTasks('grunt-contrib-concat');
 grunt.loadNpmTasks('grunt-contrib-uglify');
 grunt.loadNpmTasks('grunt-contrib-cssmin');
 grunt.loadNpmTasks('grunt-contrib-compass');
 grunt.loadNpmTasks('grunt-contrib-watch');
 grunt.loadNpmTasks('grunt-contrib-copy');
 grunt.loadNpmTasks('grunt-contrib-imagemin');
 grunt.loadNpmTasks('grunt-newer');

を呼び出すとconcat:css、plugin.css が連結されますが、タスクを実行するたびに追加されるため、同じ CSS の複数のコピーがファイルに挿入されます。

を呼び出すnewer:concat:cssと、ファイルが に連結されることはありませんfrontend.css

どんな助けでも大歓迎です!

4

1 に答える 1

1

最も簡単な解決策は、ビルドごとにファイルを単純に削除できるgrunt-contrib-cleanを使用することです。

clean: {
    css: ['www/assets/css/frontend.css']
}

または、プラグインをインストールせずに:

grunt.registerTask('clean:css', function () {
    grunt.file.delete('www/assets/css/frontend.css');
});
于 2014-06-16T21:36:10.987 に答える