针对节点表达的较少中间件的适当自动修复插件

时间:2015-05-20 04:41:59

标签: css node.js express less

目前我使用较少的中间件(https://www.npmjs.com/package/less-middleware)。我对这个解决方案不满意,因为less-middlware会创建一个已编译的css文件。我想要一个可以通过expressjs路由的记忆解决方案。

此外,我想使用适当的autoprefix解决方案,因为我无法使用许多不错的css技术,因为我需要很多时间来添加供应商前缀。

  1. 如果没有输出单独的css文件,是否有人知道一个更好的解决方案,可以立即减少编译。
  2. 此解决方案可以提供某种自动修复功能吗?
  3. 提供较少中间件的是否提供自动修复功能。我没有找到那个方向的东西。

2 个答案:

答案 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] })

     

来源:http://lesscss.org/usage/#plugins-using-a-plugin-in-code

然后根据the documentation of Less Middleware,将选项添加到render()函数的第二个参数中的方法如下:

  

options.render直接传递到less.render,中间件的默认值或更改次数最少。

     

来源:https://github.com/emberfeather/less.js-middleware#render-options

所以根据the documentation of Less AutoprefixerExpress 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
        ]
    }
}));

This was implemented and tested in the NodeAtlas NPM module