Stylus `middleware` 抛出错误并且不生成 `css` 文件

Stylus `middleware` throws error and not generating `css` file

我在 stylus 的 运行 上使用连接服务器时遇到此错误。我没有在此处作为 .css 文件得到最终结果。

错误:

D:\Projects\TCP\node_modules\stylus\lib\renderer.js:187
  this.options.paths.push(path);
                    ^
TypeError: Cannot read property 'push' of undefined
    at Renderer.include (D:\Projects\TCP\node_modules\stylus\lib\renderer.js:187
:21)
    at Renderer.<anonymous> (D:\Projects\TCP\node_modules\nib\lib\nib.js:51:11)
    at Renderer.use (D:\Projects\TCP\node_modules\stylus\lib\renderer.js:203:6)
    at Object.compile (D:\Projects\TCP\server.js:12:55)
    at D:\Projects\TCP\node_modules\stylus\lib\middleware.js:152:31
    at fs.js:334:14
    at FSReqWrap.oncomplete (fs.js:95:15)

我的Server.js:

var connect =   require('connect'),
    serveStatic = require('serve-static'),
    nib = require('nib'),
    stylus = require('stylus');

var app = connect();

app.use(stylus.middleware({
    src     : __dirname + '/public',
    force   : true,
    compile : function compile(str, path) {
                return stylus(str, path).set('filename', path).use(nib());
            }
}));

app.use(serveStatic("public"));
app.listen(5000, function () {console.log("HI", __dirname);}); //works!

.style 文件位于 public/css/tcp.styl - 输出可以是同一个地方。这里有什么问题?如何解决?

提前致谢

你因为这一行而得到这个错误:

return stylus(str, path).set('filename', path).use(nib());

stylus 调用的第二个参数应该是一个带有选项的对象,而不是带有路径的字符串。在您的情况下,呼叫应该只是 stylus(str).