MVC4 bundle {version} 通配符阻塞非数字版本控制



根据MS捆绑开发,{version}通配符是(d+(?:.d+){1,3})的正则表达式。这区分了:

jquery-1.8.2.js
jquery-ui-1.9.0.js

但是由于非数字编号(#.#.#pre),它阻塞了:

html5shiv-3.6.2pre.min.js
html5shiv-printshiv-3.6.2pre.min.js

所以我正在这样做:html5shiv-3*html5shiv-printshiv-*.但当然,这意味着我必须在脚本更改时更新捆绑包。

我只是以html5siv作为一个简单的例子。这个问题很普遍,因为包含"pre","beta","-a","-alpha"等很常见。解决方案是手动重命名文件,但随后不会通过 nuget 自动重命名。

我做错了什么吗?

听起来 {version} 正则表达式应该匹配语义版本以解释 -pre/alpha1 后缀。 我会将其添加到我们的积压工作中。

我不明白你的问题。

如果使用语法{version}您仍然可以使用后缀,例如 -pre 或 -min

一个例子是

 bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}-min.js"));

它不必在版本变量中包含 -min。

最新更新