0

我曾经使用,但在需要添加自定义函数/常量时less-middleware切换到。less我假设在幕后less-middleware使用。less

要定义我使用的常量:

function lessDefine(name, value) {
  less.tree.functions[name] = function () {
    return new (less.tree.Anonymous)(value);
  };
}

并创建一个常量:

lessDefine('backgroundImage', config.backgroundImage);

然后链接到 Express:

router.use('/stylesheets',
  less.middleware(
    lessOpts.source, lessOpts.main,
    lessOpts.parser, lessOpts.compiler));

这是在爬取了错误报告、功能请求和谷歌结果之后,因为扩展 LESS 的能力没有得到很好的记录。这在上周有效,但现在我看到了:

TypeError: Object #<Object> has no method 'middleware'

当我尝试启动我的节点应用程序时。

在 Node.js 中向 LESS 添加函数/常量的“正确”方法是什么?

请注意,我使用:

var less = require('less');
var lessMiddleware = require('less-middleware');

package.json使用以下版本限制:

less-middleware: 1.0.3
less: 1.7.x
4

1 回答 1

0

less.middlewareless-middleware模块添加。

Monkeypatching 不受欢迎是有原因的。less-middleware在其文件夹中安装了自己的less模块(通过 npm),而我的应用程序使用的是单独的less.

因此,less.middleware没有在less我的应用程序看到的实例中设置。调用后npm dedupe,重复的实例被合并,我的应用程序现在可以工作了。

于 2014-06-21T11:50:07.697 回答