2017-10-19 146 views
0

我想將scss添加到我的grunt文件中,所以我運行以下命令: npm install grunt-contrib-sass sass --save-dev。 然後我說下面我Gruntfile.jsgrunt將內容寫入控制檯而不是文件?

grunt.loadNpmTasks('grunt-contrib-sass');

grunt.initConfig({ 
... 
sass: { 
    dev: { 
     files: { 
      '<%=meta.src %>assets/css/all2.css': '<%=meta.src %>assets/scss/build.scss' 
     } 
    }, 

    dist: { 
     files: { 
      '<%=meta.dist %>/assets/css/all.min.css': '<%=meta.src %>/assets/scss/build.scss' 
     } 
    } 
}, 

當我運行此我得到的build.scss的輸出在控制檯,它創建了一個空文件?

我在想什麼?

Running "sass:dev" (sass) task 
#flupdidup { 
    font-weight: bold; 
} 
Running "sass:dist" (sass) task 
#flupdidup { 
    font-weight: bold; 
} 
Done, without errors. 
Process terminated with code 0. 

問題的最小娛樂可以在這裏找到:https://github.com/Peter-Optiway/grunt-sass-issue

+1

你可以刪除'<%= meta.src%>',看看它的工作原理精細? –

+0

@TarunLalwani可悲的是,沒有改變任何東西'./app/assets/css/all2.css':'。/ app/assets/scss/build.scss'' – Peter

+1

可能得到一個最小的git repo進行調試? –

回答

0

我設法通過更改爲grunt-sass包而不是解決問題。

npm install --save-dev load-grunt-tasks load-grunt-tasks 然後我添加以下內容到我的Gruntfile.jsrequire('load-grunt-tasks')(grunt);,它剛剛工作。

+0

看看我發佈的答案 –

3

切換到grunt-sass總是一個選項,但您的問題不是因爲這一點。這個問題是因爲你使用npm安裝了sass

npm install -g sass 

當你看那個

$ sass --help 
Compile Sass to CSS. 

Usage: dart-sass <input> 

-s, --style   Output style. 
        [expanded (default)] 

-c, --[no-]color Whether to emit terminal colors. 
    --[no-]trace Print full Dart stack traces for exceptions. 
-h, --help   Print this usage information. 
    --version  Print the version of Dart Sass. 

它沒有輸出參數。雖然grunt-contrib-sass預計Sass從紅寶石安裝。

$ sudo gem install sass 

現在青菜都會有不同的選擇

$ sass --help 
Usage: sass [options] [INPUT] [OUTPUT] 

Description: 
    Converts SCSS or Sass files to CSS. 
... 

現在構建工作正常

$ cat ./dist/assets/css/all.min.css 
main #flupdidup { 
    font-weight: bold; 
    background: #eeffcc; } 

/*# sourceMappingURL=all.min.css.map */ 
+0

最後'grunt-sass'是一個更好的選擇,因爲它不依賴於ruby,但是你可以得到50分! – Peter