首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BundleTransformer.Less无法解析@import语句中的变量

BundleTransformer.Less无法解析@import语句中的变量
EN

Stack Overflow用户
提问于 2014-02-27 19:50:20
回答 3查看 946关注 0票数 0

编辑:所以根据this的说法,这是不可能的,这是一个真正的遗憾。我将需要寻找一个在导入中支持变量的捆绑和压缩的库。

我在尝试让BundleTransformer.Less解析以下内容时遇到了问题:

代码语言:javascript
复制
// There is a path to Startup framework
@startup-basePath: "../../../";

@import '@{startup-basePath}flat-ui/less/config.less';
@import '@{startup-basePath}flat-ui/less/mixins.less';

并且它会产生以下错误:

代码语言:javascript
复制
You are importing a file ending in .less that cannot be found.":"/lib/startup/samples/template/less/@{startup-basePath}flat-ui/less/config.less

文件确实存在,但如您所见,它没有解析位置字符串中的变量。VS2013中的Web Essentials可以编译较少的文件,并按预期输出CSS。我怀疑问题出在BundleTransformer或设置它的方式上。我使用的是以下版本:

代码语言:javascript
复制
Id                             Version              Description/Release Notes                                                                                                                                      
--                             -------              -------------------------                                                                                                                                      
BundleTransformer.Core         1.8.0                Bundle Transformer - a modular extension for System.Web.Optimization (aka Microsoft ASP.NET Web Optimization Framework). Classes `CssTransformer` and `JsTra...
BundleTransformer.Less         1.7.16               BundleTransformer.Less contains translator-adapter LessTranslator. This adapter makes translation of LESS-code to CSS-code. Also contains HTTP-handler LessA...
BundleTransformer.Yui          1.8.0                BundleTransformer.Yui contains 2 minifier-adapters: `YuiCssMinifier` (for minification of CSS-code) and `YuiJsMinifier` (for minification of JS-code). These...

我必须使用这些版本,因为我正在使用Umbraco 7,它将不允许我更新Newtonsoft.Json而不破坏Umbraco。

我的包配置文件如下所示:

代码语言:javascript
复制
public static void RegisterBundles(BundleCollection bundles)
{
    bundles.UseCdn = true;

    var nullBuilder = new NullBuilder();
    var nullOrderer = new NullOrderer();

    // CSS + LESS
    var libCSS = new CustomStyleBundle("~/libCSS");
    libCSS.Include(
        "~/Content/font-awesome.css",

        // LESS
        "~/lib/startup/samples/template/less/style.less");

    libCSS.Orderer = nullOrderer;

    bundles.Add(libCSS);
}

我认为这个问题是因为Less转换器没有正确注册,但我已经严格按照安装说明进行了操作,请参阅LESS版本的文档。有人能看到我遗漏的东西来帮助解决这个问题吗?或者有人能推荐一些我可以尝试的东西吗?

感谢大家的帮助。

EN

回答 3

Stack Overflow用户

发布于 2014-02-27 21:11:07

我也尝试过这个库,但没有成功:/

编译LESS的最佳解决方案是node.js包LESS (https://www.npmjs.org/package/less)或Recess (http://twitter.github.io/recess/)。

因为在部署web项目后,您的较少文件不会被更改,所以您不必在每次应用程序初始化时生成css。

您还可以在应用程序构建之前或保存较少文件后生成CSS。

如果你感兴趣,我可以帮你提供更多的信息。

票数 0
EN

Stack Overflow用户

发布于 2014-04-29 19:54:26

BundleTransformer.Less不支持文件路径中的字符串插值(请参见«Is string interpolation not supported?»讨论)。

更新:In BundleTransformer.Less version 1.9.92现在支持文件路径中的插值。

票数 0
EN

Stack Overflow用户

发布于 2015-02-04 05:08:47

我比较幸运地使用了这些BundleTransformer包的1.9.40和1.9.34版本。我有时会遇到1.8版本失败的问题。我们已经使用BundleTransformer.Core.1.9.40、BundleTransformer.Less.1.9.40和BundleTransformer.Yui.1.9.34几周了,没有1.8版本的任何错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22067666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档