私は自分のプロジェクトを持っていて、express2.5.7からexpress3.0.3にいくつかのコードを移植していました。ほぼ1:1の転送だと思っていましたが、指定したディレクトリにスタイラスファイルをコンパイルできないという問題が発生しています。これが私の基本的なapp.jsセットアップです:
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path')
, nib = require('nib')
, bootstrap = require('bootstrap-stylus')
, stylus = require('stylus');
var app = module.exports = express();
app.configure('dev', function(){
var stylusMiddleware = stylus.middleware({
src: __dirname + '/stylus/', // .styl files are located in `/stylus`
dest: __dirname + '/public/css/', // .styl resources are compiled `/css/*.css`
debug: true,
compile: function(str, path) { // optional, but recommended
console.log(path);
return stylus(str)
.set('filename', path)
//.set('warn', true)
.set('compress', true)
.use(bootstrap())
}
});
app.use(express.logger('dev'));
app.use(stylusMiddleware);
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
app.set('view options', { pretty: true });
});
app.configure('prod', function(){
app.use(express.errorHandler());
});
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.get('/', routes.index);
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
私はapp.configure
ものをテストしました、そしてそれは正しいメソッド(「dev」と関数だけで設定する)を通過しています