我使用Node.js的使用Express作爲我的基地,我的應用程序,並在嘗試使用NPM包節點薩斯中間件社科院編制和基礎網站爲基礎scss源碼。基金會進口與Libsass,節點薩斯中間件不是編譯
我app.js包含以下,
var sass = require('node-sass');
var sassMiddleware = require('node-sass-middleware');
app.use(sassMiddleware({
src: path.join(__dirname,'scss'),
dest: path.join(__dirname,'public/css'),
prefix: '/css',
includePaths:[path.join(__dirname, 'node_modules/foundation-sites/scss/')], //Make sure we include the foundation library. ^-^;
debug: true,
outputStyle: 'extended'
}));
app.use(express.static(path.join(__dirname, 'public')));
我style.scss樣子:
@import 'foundation';
@import 'stuff'; /*Testing imports functionality*/
body{
color:black; /*Just for testing compilation*/
}
和stuff.scss樣子:
somerandomtag{
@extend body;
border:5px solid black;
}
在我的佈局.jade我已添加
link(rel='stylesheet', href='/css/style.css')
當我刷新我的網頁,在我的日誌,我可以看到下面的輸出:
GET /登錄200 356.910毫秒 - 511源: F:\用戶\ trutt \文件\項目\ MyProject的\ scss \ style.scss dest: F:\ Users \ trutt \ Documents \ Projects \ MyProject \ public \ css \ style.css
閱讀:F:\ Users \ trutt \ Documents \ Projects \ MyProject \ public \ css \ style .css GET /js/jquery.cookie.js 304 7.621 ms - - GET /css/style.css - - ms - - render:F:\ Users \ trutt \ Documents \ Projects \ MyProject \ scss \ style.scss來源: F:\ Users \ trutt \ Documents \ Projects \ MyProject \ sc SS \ style.scss DEST: F:\用戶\ trutt \文件\項目\ MyProject的\ PUBLIC \ CSS \ style.css的GET /css/style.css 200 7.127毫秒 - 269
所有最終導致在編譯的style.css:
/**
* Foundation for Sites by ZURB
* Version 6.2.1
* foundation.zurb.com
* Licensed under MIT Open Source
*/
somerandomtag {
border: 5px solid black; }
/*Testing imports functionality*/
body, somerandomtag {
color: black;
/*Just for testing compilation*/ }
爲基礎的標題本身是可見的,它告訴我,我包括路徑處於工作狀態。我已經證明Sass似乎通過編譯檢查和導入測試以及繼承來工作。但是......基金會的所有規則在哪裏?我錯過了什麼嗎?
所有安裝的軟件包都是在最近24小時內直接從npm新安裝的,所以我會假設我正在使用最新的npm軟件包版本。
我也遇到了同樣的問題。你的解決方案工作的原因是因爲如果你遵循'@ import'語句,你會發現你導入的所有東西都被包裝在mixin中。如果你自己包含了'[foundation]/scss/foundation.scss',那麼這個mixins就會被聲明,但並沒有被真正使用。 '@include foundation-everything'是一個混合,最終包含所有這些mixin。 (如果以這種方式設計基金會有好處,我會很好奇) – Scribblemacher
現在我想到了這一點,我看到了這個優勢。如果您使用@import [foundation]/scss/foundation',則可以訪問項目中的所有mixin,因此可以使用'@ include'語句包含組件(甚至是組件的一部分)。這給了你很多控制權,這樣你只需要構建你需要的部分,而不是在文件級導入。 – Scribblemacher