您能帮我解决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
stylus
styles.styl
公开
block 引用> block 引用>css
我已经尝试了之前发布的所有内容,但没有成功。我有点陷入困境并在这个问题上兜圈子,所以如果你有任何建议那就太好了。谢谢
最佳答案
问题可能是 src 文件夹需要与 dest 文件夹具有相同的文件夹结构,反之亦然 [这是一个常见的错误]。我的意思是,如果您将 src 设置为 __dirname + '/stylus'
并将 dest 设置为 __dirname + '/public'
并且您在/stylus 中有一个名为 css 的文件夹,然后style [ 即 ./stylus/css/style1.styl
那么目标需要是 ./public/css/style.css
。我想我自己也曾为此挣扎过。检查我的结构和 app.js 中的代码。
app.js
function compile(str, path) {
return stylus(str)
.set('filename', path)
.use(nib())
.set('compress', true)
.import('nib');
}
app.use(stylus.middleware({
src: __dirname + '/resources',
dest: __dirname + '/public',
debug: true,
force: true
}));
app.use(express.static(path.join(__dirname, 'public')));
关于javascript - Stylus 中间件不编译 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23343605/