Stylus Middleware没有编译CSS

时间:2014-04-28 14:20:52

标签: javascript node.js express pug stylus

你能帮我解决 Stylus Middleware 。我不能让他编译css文件。

这是我的app.js代码:

// Module dependencies
var express = require('express');
var stylus = require('stylus');
var nib = require('nib');
var logger = require('morgan');

// Compile function - check this function online
function compile(str, path){
return stylus(str)
.set('compress', true)
.use(nib())
}

// Stylus Middleware (functions that handles request)
app.use(logger('dev')); //replaces your app.use(express.logger());
app.use(stylus.middleware({ 
src: __dirname + '/stylus',
dest: __dirname + '/public',
compile: compile
}))
app.use('/static', express.static(__dirname + '/public/static'));

我的根文件夹的结构如下:

  

userApp

     
    

app.js

         

触针

         
      

styles.styl

    
         

公共

         
      

CSS

    
  

我已经尝试了之前发布的所有内容,但没有运气。我有点陷入困境并且与此有关,所以如果你有任何建议那就太棒了。感谢

2 个答案:

答案 0 :(得分:2)

问题可能是src文件夹需要与dest文件夹具有相同的文件夹结构,反之亦然[这是一个常见的错误]。我的意思是,如果你将src设置为__dirname + '/stylus'并将其设置为__dirname + '/public'并且你在/ stylus中有一个名为css的文件夹,然后是样式[ie ./stylus/css/style1.styl,那么dest必须是{{ 1}}。我想我自己也在努力解决这个问题。在app.js中检查我的结构和代码。

app.js

./public/css/style.css

enter image description here

答案 1 :(得分:0)

我的猜测是因为如果您有任何filename@import语句无法正确解析路径,则忽略了@require设置编译失败。试试这个:

// Compile function - check this function online
function compile(str, path){
  return stylus(str)
  .set('filename', path)
  .set('compress', true)
  .use(nib());
}