2012-11-28 57 views
1

比如我有index.css包含鏈接到另一個CSS文件:Can GruntJS可以獲取外部文件嗎?

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

它可以連接具有咕嚕JS這些文件?

回答

2

看着Grunt API,文件的東西似乎只適用於本地文件。 http://gruntjs.com/api/grunt.file

此外,我還沒有看到任何東西在解析CSS文件尋找導入的源代碼。

,讓他們連接在一起:

我建議你在本地下載的文件,把它們放在你平常的CSS文件夾,然後用咕嚕CONCAT正常。

然後,我會寫一個小腳本,使用wget下載這些依賴項的新副本,然後再用grunt構建。

+0

只是FYI ...鏈接現在壞了。 – anthonylawson

+0

感謝您的注意。我更新了鏈接。 – owksley

0

我知道這已經有一段時間了,但我在嘗試做類似的事情時遇到了它。這是一種使用咕嚕任務從網址保存文件的方法。

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); 
    }); 
    }); 

}; 
+0

你能提供一個使用此任務的示例配置嗎? – acelot

+0

此任務沒有配置選項,因此您可以像運行其他任務一樣運行它。 'grunt saveURL' – Lee

相關問題