Stylus和CoffeeScript中间件无需您重新启动应用程序即可自动为您编译任何Stylus和CoffeeScript代码,例如,您可以编辑.styl文件并仅在浏览器中刷新页面,更改就在那里。我发现这在开发时非常方便,但这会严重影响最终用户在生产中的页面加载时间吗?
我的Express设置通常是这样的(CoffeeScript):
app = express()
app.set 'views', __dirname + '/views'
app.set 'view engine', 'jade'
compile = (str, path) -> return stylus(str).set 'filename', path
app.use stylus.middleware {
src: __dirname + '/stylus',
dest: __dirname + '/assets/css',
compile: compile
}
app.use coffee {
src: __dirname + '/coffee',
dest: __dirname + '/assets/js',
encodeSrc: false
}
app.use express.static __dirname + '/assets'
最佳答案
这肯定比静态提供预编译文件要慢(如果Stylus和CoffeeScript不支持我不知道的缓存)。问题是,这是否重要。而这取决于您的应用收到的流量强度。
通常,我建议您预先编译文件并以静态方式提供文件。对于部署,我建议使用Gulp.js之类的文件并观看文件。使用gulp,可以在文件更改时自动编译文件,这通常比在请求文件时进行编译要好得多。