不需要的普通混合物

时间:2012-12-06 03:38:18

标签: javascript less requirejs

我正在尝试让Guy Bedfords less plugin for RequireJS将一些常见文件拉入每个/所有后续较少的文件中。目标是保持模块特定的较少文件分离,但每个文件都引入一些常见资产,如变量和混合。

到目前为止,似乎插件自己解析每个文件较少。

例如,如果我只是说:

// variables.less

@red: #ff0000;


// styles.less

body {
    background-color:@red;
}


// main.js

define(['less!variables', 'less!styles'], function() {
    ...
});

variables.less和styles.less都被解析了,但styles.less将不会在variables.less中看到@red,并且我得到一个javascript错误,指出styles.less无法解析。

在git上查看示例,看起来分离依赖项(强制它们先加载?)应该将它们拉入:

// common.js

define(['less!variables'], function() {
    return {}; 
});


// main.js

define(['common', 'less!styles'], function() {
    ...
});

但这给了我相同的结果;没有错误说styles.less没有正确解析。

我尝试了一些“hacks”,比如在styles.less中使用@import来引入变量。但似乎虽然require-less会规范化大多数url,但它不会规范化@imports,所以现在变量必须绝对引用,这不是我想要的。

有谁知道我在这里做错了什么?

目标是在开发中通过RequireJS加载和解析较少的文件,使用与r.js良好集成的东西来预编译所有较少的css以进行部署。虽然不需要的插件看起来很棒,但是无法使用变量或mixins是一个非常严重的错误。还有其他选择吗?

感谢。

1 个答案:

答案 0 :(得分:0)

看起来加载普通资产较少的方法是使用@import。它变成了一个非常快速的解决方案,使网址规范化工作(https://github.com/guybedford/require-css/pull/26)。