Промежуточное программное обеспечение стилуса не компилирует CSS
Можете ли вы помочь мне с 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 ответа
Возможно, проблема в том, что папка src должна иметь ту же структуру папок, что и папка dest, или наоборот [это распространенная ошибка]. Я имею в виду, если вы установите thrc в __dirname + '/stylus'
и дест __dirname + '/public'
и у вас есть папка css в /stylus, а затем стиль [т.е. ./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')));
Я думаю, потому что вы пропустили filename
установка вашей компиляции не удастся, если у вас есть какие-либо @import
или же @require
утверждения, где путь не может быть правильно решен. Попробуй это:
// Compile function - check this function online
function compile(str, path){
return stylus(str)
.set('filename', path)
.set('compress', true)
.use(nib());
}