是否可以从 Visual Studio 的构建后事件或 MVC Web 应用的 App_Start 中预编译 Handlebars 模板?提前非常感谢。戴尔
问问题
5864 次
3 回答
13
当然,你有很多选择:
- 您可以为 windows 和 npm 安装 node.js,并为编译配置一个构建后事件(这里的示例来自上一个问题)
- 如果您使用的是 ember.js,这里有一个使用包转换来实现预编译的实现。
- 另一个支持组件的 ember.js,这里是实现,它也使用包转换。
- 这是使用侏罗纪 javascript 编译器在 C# 上编译的示例
于 2013-04-28T14:41:24.517 回答
4
一种方法是使用捆绑转换和 jurrasic js 编译器生成一个 js 文件,其中包含所有已编译的视图和部分视图。
public class BundleConfig
{
public static void RegisterHandlBarBundles(BundleCollection bundles, string path)
{
HandleBarBundleTransform transform = new HandleBarBundleTransform();
transform.jsPath = path;
bundles.Add(new Bundle("~/views.js", transform).IncludeDirectory("~/views", "*.hbs", true));
BundleTable.EnableOptimizations = true;
}
}
这样做的好处是不需要 node.js 或 ember,同时仍然使用简单的 bundletransform 钩子。
HandleBarBundleTransform 的完整来源在这里。
这具有为不使用 ember 的人发布的 ember 解决方案 @ahmed 的便利。
于 2014-02-26T18:30:45.510 回答
2
我知道这个问题是在 Visual Studio 2010 上的,但我在寻找解决方案时发现它在 VS2013 中重新编译 Handlebars。我花了一些时间研究解决方案,直到我发现Web Essentials for Visual Studio在 2014 年 11 月添加了车把模板的自动预编译。
Web Essentials 中的这个功能并没有很好地宣传,我只是在构建解决方案时才发现它,发现.hbs.js
在我编辑车把文件时会自动出现一个.hbs
文件!当它已经存在时,我浪费了很多时间寻找解决方案。
我希望这个答案对其他人有所帮助。
于 2015-07-12T08:01:57.887 回答