我有一個運行在grunt上的羅盤任務,它產生一個編譯的base.css文件以及一些頁面特定的css文件。 base.scss @imports a _settings.scss部分決定了所有文件的全局設置。以編程方式運行Compass Grunt任務
compass: {
theme: {
options: {
sassDir: '/sass',
cssDir: 'css',
fontsPath: 'css/fonts',
imagesPath: 'img'
}
}
}
我希望能夠多次撥打羅盤的任務,但每次都莫名其妙地規定不同的設置文件在base.scss進口和使用不同的cssDir的輸出。這是可以實現的嗎?
我試圖使用下面的方法,基本上在兩個不同的羅盤任務中增加了指南針config.rb(通過原始)。每個任務都包含到包含設置文件的目錄的不同導入路徑。這個設置文件然後被拾取爲我的base.scss頂部的@import settings.scss。
compass: {
theme: {
options: {
httpPath: '/',
sassDir: '/sass',
cssDir: 'css',
raw: 'add_import_path "/sass/theme"'
}
},
theme2: {
options: {
httpPath: '/',
sassDir: '/sass',
cssDir: 'css',
raw: 'add_import_path "/sass/theme2"'
}
}
}
這似乎工作,雖然它感覺像一個黑客它是最接近我有一個工作的解決方案。似乎應該有辦法做到這一點,但迄今爲止解決方案已提到我。
我現在想,如果我可以使用registerTask()來創建我需要的做法有點像一個我發現這裏的功能:
Programmatically pass arguments to grunt task?
我找啊找一個體面的解決方案,這一點,但它似乎並不像這樣使用咕嚕目前可能。我考慮過的一種方法是在兩個單獨的目錄中設置partials,然後當對任何sass文件進行更改時,將所有核心模塊和頁面文件複製到這些目錄中,最後在兩組文件上運行指南針任務......似乎漫長的道路將會使整個過程花費更長的時間。也許唯一的解決辦法就是加快學習節點並構建我自己的grunt插件來處理這個問題。 –