目前我使用较少的中间件(https://www.npmjs.com/package/less-middleware)。我对这个解决方案不满意,因为less-middlware会创建一个已编译的css文件。我想要一个可以通过expressjs路由的记忆解决方案。
此外,我想使用适当的autoprefix解决方案,因为我无法使用许多不错的css技术,因为我需要很多时间来添加供应商前缀。
答案 0 :(得分:1)
您应该尝试重新格式化您的问题,因为:
要求我们推荐或找到书籍,工具,软件的问题 库,教程或其他异地资源是Stack的偏离主题 溢出,因为他们倾向于吸引固执己见的答案和垃圾邮件。 相反,描述问题以及到目前为止已经完成的工作要解决 它
我根据他们的package.json文件找到https://github.com/toogle/express-less/blob/master/lib/express-less.js,Express LESS中间件使用最新版本的Node Less。
在他们的代码中,可以在此处找到less.render()
来电:https://github.com/toogle/express-less/blob/master/lib/express-less.js#L68以及更多信息:http://lesscss.org/usage/#programmatic-usage
从Less版本2开始,您可以使用插件。 autoprefix插件位于:https://github.com/less/less-plugin-autoprefix
所以你应该可以使用以下代码:
var express = require('express'),
expressLess = require('express-less'),
autoprefixer = require('less-plugin-autoprefix');
var app = express();
app.use('/less-css', expressLess(__dirname + '/less', { plugins: [autoprefixer] }));
另见:http://lesscss.org/usage/#plugins-using-a-plugin-in-code
注意我没有测试上面的代码。我想知道如何设置autoprefixer选项。根据{{3}}你应该使用:
var autoprefixerPlugin = require('less-plugin-autoprefix'),
autoprefixer = new autoprefixerPlugin({options});
var app = express();
app.use('/less-css', expressLess(__dirname + '/less', { plugins: [autoprefixer] }));
答案 1 :(得分:1)
根据the documentation of Less Engine,使用插件的方法如下:
less.render(myCSS, { plugins: [myPlugin] })
然后根据the documentation of Less Middleware,将选项添加到render()
函数的第二个参数中的方法如下:
options.render
直接传递到less.render
,中间件的默认值或更改次数最少。来源:https://github.com/emberfeather/less.js-middleware#render-options
所以根据the documentation of Less Autoprefixer和Express Engine的文档,使用它的确切和真实的方法是使用此代码:
var express = require('express'),
lessMiddleware = require('less-middleware'),
lessPluginAutoprefix = require('less-plugin-autoprefix'),
app = express(),
autoprefixPlugin = new lessPluginAutoprefix({
browsers: ["last 2 versions"]
});
app.use(lessMiddleware(path.join(__dirname, 'public'), {
render: {
plugins: [
autoprefixPlugin
]
}
}));