Промежуточное программное обеспечение стилуса не компилирует 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());
}
Другие вопросы по тегам