我曾经使用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));
这是在浏览错误报告,功能请求和Google结果之后,因为扩展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
答案 0 :(得分:0)
less.middleware
由less-middleware
模块添加。
Monkeypatching因为某种原因而不受欢迎; less-middleware
在其文件夹中安装了自己的less
模块(按照npm),而我的应用使用了less
的单独实例。
因此,less.middleware
未在我的应用看到的less
实例中设置。在调用npm dedupe
之后,整合了重复的实例,我的应用程序现在正常运行。