捆绑,并用ASP.NET MVC涅槃模块化的JavaScript(RequireJS / AMD)(

2019-06-26 11:09发布

有没有人有任何经验或知道捆绑,并在ASP.NET MVC项目涅槃模块化的JavaScript像RequireJS / AMD什么好的解决办法?

就是用最好的方式RequireJS优化 (或许在后生成的行动?) -或者是有ASP.NET MVC更好的东西在那里?

Answer 1:

我想你会打的问题是,如果你使用的匿名定义。 如果您想包含所有的定义组合/捆绑的脚本文件,你必须给它们命名。

例如。

define("someModule", ["jquery", "ko"], function($,ko) { ... });

代替

define(["jquery", "ko"], function($,ko) { ... });

如果你使用的文件名作为模块名,你就可以异步加载它们的(非绑定),以及预装(捆绑)。 你可以在调试模式以及发行模式下工作,而无需改变这样,你的需要。

我与RequireJS优化没有经验知道,如果它需要匿名定义的照顾与否。

更新:

最近,我不得不这样做,很可能会遇到的问题之一是脚本代码加载require.js的数据主要属性。 由于main.js文件对捆绑模块的依赖关系,他们需要main.js之前,但require.js后才会被载入。 因此,我不得不抛弃数据主要和加载该文件(非绑定)最后一次。

<script src="../JS/require-v2.1.2.js" type="text/javascript" data-main="main.js"></script>

<script src="../JS/require-v2.1.2.js" type="text/javascript"></script>
<%: System.Web.Optimization.Scripts.Render("~/bundles/signup") %>
<script src="main.js" type="text/javascript"></script>

我还没有看,但如果束配置可以确保main.js是最后的,那么甚至不需要去年脚本标签。



Answer 2:

这些都是得到RequireJS捆绑main.js.步骤 你可以踏踏实实地在一个行<head>标签。 这并不匿名定义解决这个问题。

HTML

<head runat="server">
    <title></title>
    <%: System.Web.Optimization.Scripts.Render("~/bundles/scripts") %>
</head>

BundleConfig.cs

using System.Web;
using System.Web.Optimization;

public class BundleConfig
{
    // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/scripts").Include(
                    "~/scripts/libs/require.js",
                    "~/scripts/main.js"));
   }
}

main.js必须努力没有数据,主 (我需要设置的baseUrl)

require.config({
    baseUrl: "scripts"
});


Answer 3:

我不知道这是否是一个可以接受的解决方案或没有,但的Visual Studio 2012有一个NuGet包(Microsoft.Web.Optimization),它支持原生的缩小和捆绑。 我不知道它是否提供了2010

这是在的Application_Start一行代码

Microsoft.Web.Optimization.BundleTable.Bundles.EnableDefaultBundles();

http://msdn.microsoft.com/en-us/vs11trainingcourse_aspnetandvisualstudio_topic5



Answer 4:

我知道这是一个老问题,但你可以看看RequireJS.NET压缩机(使用YUI压缩机,而不是ASP.NET捆绑 - 至少在目前),这是RequireJS.NET NuGet包的一部分。

参考文献:

压缩机- http://requirejsnet.veritech.io/compressor.html

一般文献- http://requirejsnet.veritech.io/

Github上项目- https://github.com/vtfuture/RequireJSDotNet

的NuGet - https://www.nuget.org/packages/RequireJsNet/



文章来源: Bundling and minifying modular JavaScript (RequireJS / AMD) with ASP.NET MVC