2014-12-18 15 views
10

संकलित नहीं कर रहा है मैं नोड-एसएएस-मिडलवेयर एक्सप्रेस के साथ काम करने की कोशिश कर रहा हूं। ऐप बिना किसी त्रुटि के चलाता हैनोड-एसएएस-मिडलवेयर

...(modules) 
var sassMiddleware = require('node-sass-middleware'); 

var routes = require('./routes/index'); 

var app = express(); 

// uncomment after placing your favicon in /public 
//app.use(favicon(__dirname + '/public/favicon.ico')); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
//---- LOAD SASS -----// 
// adding the sass middleware 
var srcPath = __dirname + '/scss'; 
var destPath = __dirname + '/public/stylesheets'; 
app.use(sassMiddleware({ 
    src: srcPath, 
    dest: destPath, 
    debug: true, 
    outputStyle: 'compressed' 
})); 

app.use(express.static(path.join(__dirname, 'public'))); 

क्या कोई भी एसएएस संकलित करने के तरीके से कुछ भी गलत देख सकता है?

फ़ाइल संरचना:

app 
controllers 
routes 
public 
-stylesheets 
scss 
... 
+0

एक्सप्रेस का कौन सा संस्करण आप उपयोग कर रहे हैं? उदाहरण में package.json वे कनेक्ट 2.7.9 का उपयोग कर रहे हैं। सम्मेलन में बहुत कुछ बदल गया है, इसलिए आपको ऐप.यूज (एस 0 एमस्रोत: srcPath, dest: destPath, डीबग: सत्य, आउटपुट स्टाइल: 'संपीड़ित' })()); – jusynth

उत्तर

7

यह कैसे app.js होना चाहिए:

app.use(sassMiddleware({ 
    src: srcPath, 
    dest: destPath, 
    debug: true, 
    outputStyle: 'compressed' 
}), 
express.static(path.join(__dirname, 'public'))); 

इसके अलावा अपने मुख्य एससीएसएस फ़ाइल style.scss नाम दिया जाना चाहिए और एससीएसएस/स्टाइलशीट/निर्देशिका के अंदर हो।

आप इस प्रकार का लॉग देखना चाहिए, अगर आप सही तरीके मॉड्यूल लोड किया है: के लिए grunt-sass

source : /Users/abc/Desktop/SO/SO_node/scss/stylesheets/style.scss 
    dest : /Users/abc/Desktop/SO/SO_node/public/stylesheets/stylesheets/style.css 
    read : /Users/abc/Desktop/SO/SO_node/public/stylesheets/stylesheets/style.css 
    render : /Users/abc/Desktop/SO/SO_node/scss/stylesheets/style.scss 
+0

आपका समाधान एक आकर्षण की तरह काम करता है। यह विडंबना है कि लगभग कहीं भी 'नोड-सास-मिडलवेयर' उपयोग की सही संरचना का कोई उदाहरण मौजूद नहीं है! यह एकमात्र उदाहरण था जो मैंने पाया! –

+0

मुख्य समस्या * .scss फ़ाइल का पथ है। डुप्लिकेट नाम "एसएसएस/स्टाइलशीट्स /" – Volodymyr

0

बेहतर जाने। libsass, जो SASS के मूल रूबी कंपाइलर का सी संस्करण है, के कारण सरल कॉन्फ़िगरेशन, स्वचालित कार्य (गड़बड़ी के लिए धन्यवाद) और तेज़ संकलन समय भी। एक समस्या यह है बजाय 3.

1

की 0.3 सेकंड में सास/एससीएसएस फ़ाइलों संकलित भी हो सकता है कि आप scss

बजाय sass संकलित करने के लिए चाहते हैं। इसलिए indentedSyntax से false पर सेट करें।

app.use(require('node-sass-middleware')({ 
    src: path.join(__dirname, 'scss'), 
    dest: path.join(__dirname, 'public'), 
    indentedSyntax : false, 
    sourceMap: true 
})); 

या इसे पूरी तरह से हटा दें। एक्सप्रेस-जनरेटर डिफ़ॉल्ट रूप से यह मान जोड़ता है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^