1

たとえばindex.css、別のcssファイルへのリンクが含まれています:

@import "http://<some_url>/bootstrap.css";
@import "http://<some_url>/plugin.css";
@import "app.css";

これらのファイルを Grunt JS と連結することは可能ですか?

4

2 に答える 2

2

Grunt API を見ると、ファイル関連はローカル ファイルのみに適用されるように見えます。 http://gruntjs.com/api/grunt.file

さらに、インポートを探して CSS ファイルを解析するソース コードは見たことがありません。

それらを連結するには、次のようにします。

ファイルをローカルにダウンロードし、通常の css フォルダーに配置してから、通常どおり Grunt concat を使用することをお勧めします。

次に、wget を使用して小さなスクリプトを作成し、これらの依存関係の新しいコピーをダウンロードしてから、grunt でビルドします。

于 2012-11-28T11:14:39.663 に答える
0

これが尋ねられてからしばらく経っていることは知っていますが、似たようなことをしようとしているときに遭遇しました。grunt タスクを使用して URL からファイルを保存する 1 つの方法を次に示します。

module.exports = function(grunt) {
  'use strict'; 
  var http = require('http');

  grunt.initConfig({
    watch: {
      scripts: {
        files: ['**/*.cfc'],
        tasks:['saveURL']
      }
    },
    open:{
      error:{
        path:'http://<server>/rest/error.html' 
      }
    }
  });


  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-open');


  grunt.registerTask('default', ['watch']);

  grunt.registerTask('saveURL', 'Write stuff to a file', function() {
    var done = this.async();
    var reloadurl = 'http://<server>/rest/index.cfm?rl';

    grunt.log.writeln('Loading URL:' + reloadurl + ' ...');

    http.get(reloadurl, function(res) {
      var pageData = "";
      if(res.statusCode != '200'){
        //if we don't have a successful response queue the open:error task
        grunt.log.error('Error Reloading Application!: ' + res.statusCode);
        grunt.task.run('open:error');
      }
      res.setEncoding('utf8');

      //this saves all the file data to the pageData variable
      res.on('data', function (chunk) {
        pageData += chunk;
      });

      res.on('end', function(){
        //This line writes the pageData variable to a file
        grunt.file.write('error.html', pageData)
        done();
      });
    }).on('error', function(e) {
      console.log("Got error: " + e.message);
      done(false);
    });
  });

};
于 2013-03-01T16:04:47.233 に答える