2015-10-06 44 views
1

我正在Sails.js中構建一個應用程序,我想將一些jade模板編譯爲javascript函數以供客戶端使用。我發現了一些文章解釋如何做到這一點,但是當我嘗試執行他們的步驟他們似乎並沒有爲我工作在sails.js中使用grunt將jade模板編譯爲javascript函數

我想編譯位於應用程序/視圖/客戶端的文件,並把編譯javascript文件導入App/.tmp/public/templates

我的咕嚕任務在App/tasks/config中,並且基於sails.js附帶的coffeescript grunt任務。我咕嚕任務看起來像這樣

module.exports = function(grunt) { 
    grunt.config.set('jade', { 
     dev: { 
      templates:{ 
       options: { 
        pretty: true, 
        client: true, 
        namespace: 'Templates' 
       }, 
       files: [{ 
        expand: true, 
        cwd: 'views/client/', 
        src: ['**/*.jade'], 
        dest: '.tmp/public/templates/', 
        ext: '.js' 
       }] 
      } 
     } 
    }); 
    grunt.loadNpmTasks('grunt-contrib-jade'); 
}; 

我將它的compileAssets.js咕嚕附帶sails.js任務,我可以看到它正在運行,當我運行帆解除命令。

運行時報告創建了0個文件,這表明我的路徑存在問題。不過,我已經根據與sails.js中的其他grunt任務相同的工作文件夾來定義它們。我嘗試了一些路徑上的變化,包括在開始時加入./,但似乎沒有任何變化。

任何人都可以幫助解釋我的grunt文件有什麼問題嗎?或者如何讓它輸出它正在查看的控制檯的文件夾,所以我可以弄清楚我的路徑是否正確?

回答

1

您的配置對象太深了。 dev已經是任務的目標,Grunt將開始尋找那裏的files屬性。安靜地忽略了templates

所以配置對象應該是這樣的:

dev: { 
    options: { 
     pretty: true, 
     client: true, 
     namespace: 'Templates' 
    }, 
    files: [{ 
     expand: true, 
     cwd: 'views/client/', 
     src: ['**/*.jade'], 
     dest: '.tmp/public/templates/', 
     ext: '.js' 
    }] 
} 
相關問題