20

我使用 dotless 1.3.1.0 编译少文件。这在 bootstrap 2.x 中运行良好,但在切换到 bootstrap 3.0.0(从这里下载源代码:http: //getbootstrap.com/getting-started/)后,我突然收到此错误:

预期为 ')' 但在文件 'mixins.less' 的第 47 行找到 ' ': [46]: // 调整快捷方式 [47]: .size(@width; @height) { --------- ---^ [48]:宽度:@width;

似乎有一个 ; 作为参数之间的分隔符是无效的。mixins.less 中的原始源代码如下所示:

...
// Sizing shortcuts
.size(@width; @height) {
  width: @width;
  height: @height;
}
...

我必须使用更新的 less 编译器吗?或者引导程序是否发布了错误更少的源代码?

更新 1:我可以看到,存在 dotless 的拉取请求,解决了问题;

https://github.com/dotless/dotless/pulls “修复 ; 在 mixin 参数列表中不支持 #319 #320”

我将继续使用 css 文件,直到这个问题被 dotless 修复。

4

4 回答 4

8

如果您查看引导程序的入门页面,您会发现它们声明:

LESS 编译

如果下载原始文件,则需要将 Bootstrap 的 LESS 文件编译成可用的 CSS。为此,Bootstrap 仅正式支持 Recess,这是 Twitter 建立在 less.js 之上的 CSS 提示。

虽然没有使用 dotless,但我遵循了与您使用 lessc 类似的路径,然后发现使用凹槽解决了我的问题。也许你也可以选择使用休息时间?

例如,我有一个名为 tmpfl.less 的文件,其内容如下:

@import "mixins.less";
@import "variables.less";


.wrapper {
  .make-row();
}
.content-main {
  .make-lg-column(8);
}
.content-secondary {
  .make-lg-column(3);
  .make-lg-column-offset(1);
}

如果我在其上运行 lessc,我会得到以下结果:

lessc tmpfl.less 
NameError: .size is undefined in mixins.less:47:0
46 // Sizing shortcuts
47 .size(@width; @height) {
48   width: @width;

现在,我成功地使用了如下的凹槽:

recess --compile tmpfl.less > tmpfl.css

更新:

为了在 .Net 环境中使用 Recess,特别是在 Visual Studio 中,可以按照这些说明了解安装的详细信息。这些说明提供了概述,但可能遗漏了安装 Node.js 的一些细节。Microsoft 对此有一些简短的说明,它们链接到GitHub 项目,这可能会有所帮助,具体取决于您的 Visual Studio 版本。

如果你不走 Node.js-in-Visual Studio 路线,那么真正的主要目标是在某个地方安装 Node.js,然后最终安装 npm,Node.js 的包管理器,这样你就可以安装 Recess。这可以通过转到Node.js 下载并安装 Windows 版本在 Windows 上实现。安装 npm 在此 stackoverflow 讨论中突出显示。安装后,您只需要运行 npm 即可安装 Recess,如下所示:

npm install recess -g

此更新的第一个链接中也对此进行了讨论。

于 2013-09-12T04:40:42.187 回答
6

我的一位使用 dotless 的同事对 Bootstrap 3 问题进行了一些修复。显然,Bootstrap3 现在将使用最新代码进行编译:)

https://github.com/dotless/dotless/commits/master

我预计更新的 NuGet 包将很快可用(基于此推文

于 2013-11-27T10:40:32.477 回答
1

在我自己花了几个小时让它工作之后,我发现此时 dotless 是毫无用处的。

但在这里你可以在你的 mvc ASP.Net 项目中实现 Less 和 Bootstrap 3 Less

http://www.tomdupont.net/2013/10/bootstrap-3-less-bundling-and-aspnet-mvc.html?showComment=1386250367416#c1439130135847828203

这家伙刚刚在我的书中赢得了一次互联网,如果你能帮我找到他的堆栈交换帐户,请告诉我。

于 2013-12-05T13:34:51.063 回答
0

我已经组装了一个 httphandler,它将使用 lessjs 编译更少。

它更像是概念证明而不是生产质量代码,但它可能对某些人有用作为起点。

你可以在这里找到源代码:

https://bitbucket.org/martinbooth/clearscriptless

如果有人有兴趣尝试使用侏罗纪来做到这一点,你可以在这里找到我的尝试:

https://bitbucket.org/martinbooth/jurassicless

我不为此推荐侏罗纪,因为

  • 它需要对当前未集成到主项目中的库进行一些错误修复
  • 它非常慢,因此我尝试了 clearscript
于 2013-09-25T05:36:56.380 回答