2015-05-05 72 views
0

我正在從grunt-contrib-compass移到grunt-sass。不過,我看到libsass編譯器在main.scss文件中的一些導入上失敗。從grunt指南針切換到libsass時出錯

這裏是main.scss

@import "breakpoint"; 
@import "compass/css3"; 
@import "compass/css3/user-interface"; 
@import "compass/css3/transform"; 
@import "compass/utilities/general/clearfix"; 

這裏運行SASS任務時被拋出的錯誤:

file to import not found or unreadable: breakpoint 
Current dir: example/styles/ 
Line 1 Column 9 example/styles/main.scss 

有誰熟悉使得開關從指南針libsass知道是否有這些進口的等價物,我可以作爲替代進入?

回答

0

您需要更新breakpoint的導入路徑以指向_breakpoint.scss所在的位置。

咕嚕-的contrib羅盤有一個importPath選項(如importPath: '/bower_components')這

由薩斯的@import 指令使容易找到指定的文件夾下的文件

,因爲這是從刪除您的gruntfile,現在應該使用完整路徑導入它:

@import "/bower_components/breakpoint/breakpoint"; 

編輯:libsass有一個類似的選項'loadPath',它將一組路徑搜索文件到@import。

grunt.initConfig({ 
    libsass: { 
    options: { 
     loadPath: ['my/load/path'] 
    }, 
    files: {[ 
     { 
      expand: true, 
      cwd: 'my/src/dir', 
      src: ['**/*.scss'], 
      dest: 'dist', 
      ext: '.css' 
     } 
    ]}, 
    }}); 

您的libsass新的配置將包括

如果您選擇不這樣做,你需要在全球範圍內,就像你沒有羅盤安裝斷點。

gem "breakpoint", "~>2.4.0" 
+0

Thanks @Rachid。我想這就是問題所在。有沒有辦法爲libsass安裝與我們一直用於指南針的導入相同的導入?那將如何工作?你的'gem'breakpoint',〜〜2.4.0'''的例子對我來說沒有意義,因爲這是libsass土地,而不是紅土地。或者我錯過了什麼? – jerome

+0

libsass有一個選項'loadPath',它用一組路徑搜索文件到@import。 (我會更新答案以包含它)。 至於'gem',你已經在使用'compass',這意味着你已經安裝了ruby。使用gem來安裝'breakpoint'將會像全局的'compass'一樣使它在全球範圍內都可用。 – Rachid

+0

是的,作爲這項工作的一部分,我正試圖完全消除對寶石的依賴。我應該早點說清楚。謝謝! – jerome