javascript - Stylus 中间件不编译 CSS

标签 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

stylus

styles.styl

公开

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')));

enter image description here

关于javascript - Stylus 中间件不编译 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23343605/

相关文章:

javascript - React this.setState 不是一个函数

node.js - Node.JS 服务器每秒可以发送多少数据?

mysql - ExpressJS - Sequelize - 列丢失错误

javascript - 带有滚动条的 jQuery Nice Select

javascript - 在 Node.js 中导入默认值

javascript - 在 textarea 中显示 ssh2 stdout 和 stderr

mysql - ENOENT : no such file or directory, 统计 '/Users/sampai/Desktop/Repos/task_tracker/task_tracker/build/index.html'

node.js - 是否可以在执行当前路由句柄之前执行另一个路由句柄?

javascript - 我的代码不会打印我的对象

javascript - Angular 8 将 ngrx 状态绑定(bind)到组件