你能帮我解决 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
我已经尝试了之前发布的所有内容,但没有运气。我有点陷入困境并且与此有关,所以如果你有任何建议那就太棒了。感谢
答案 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
答案 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());
}