如何在Require.js中引用捆绑的js文件(asp.net mvc4)?

Posted

技术标签:

【中文标题】如何在Require.js中引用捆绑的js文件(asp.net mvc4)?【英文标题】:How to reference the bundled js files (asp.net mvc4) in Require.js? 【发布时间】:2012-09-07 00:52:23 【问题描述】:

我一直在学习约翰·帕帕关于 SPA 的复数课程。

在他的main.js 中,他为包中包含的每个 js 库命名。

(function () 
var root = this;

define3rdPartyModules();


function define3rdPartyModules() 
    // These are already loaded via bundles. 
    // We define them and put them in the root object.
    define('jquery', [], function ()  return root.jQuery; );
    define('ko', [], function ()  return root.ko; );
    define('amplify', [], function ()  return root.amplify; );
    define('infuser', [], function ()  return root.infuser; );
    define('moment', [], function ()  return root.moment; );
    define('sammy', [], function ()  return root.Sammy; );
    define('toastr', [], function ()  return root.toastr; );
    define('underscore', [], function ()  return root._; );


)();

但是这里的root 是什么?


通过这样做,我们可以在define 语句中调用这些短名称:

define('vm.session',
['ko', 'datacontext', 'config', 'router', 'messenger', 'sort'],
function (ko, datacontext, config, router, messenger, sort) 

当前,我不知道该怎么做。所以我的工作define 声明很丑:

define('vm.admin.outfitters',
['/Scripts/lib/jquery-1.8.1.js', '/Scripts/lib/jsrender.js', ...], function()...

我知道一定有更好的方法。所有这些 js 文件都已包含在脚本包中。如何引用这些脚本?

【问题讨论】:

嗨@Blaise ...我正在尝试将捆绑和缩小与requirejs一起使用,但我不知道如何让它发挥作用!你有任何示例代码可以提供给我吗?谢谢。 【参考方案1】:

RE:根

RequireJS 和 AMD 就绪库从全局范围中删除对象(例如 ko)。一些插件希望它们在全局范围内,因此我们可以填充这些插件或将对象弹出回全局范围。后者是这段代码中发生的事情。主要是为 Knockout 的插件完成的。

RE:您的定义语句

第一个参数是模块的名称,这样就可以了。第二个参数是 RequireJS 知道的模块列表。第三个参数是表示它的匹配变量。所以在你的代码中你可能有这样的东西......

define('vm.admin.outfitters',
['jquery', 'jsrender'], function($, jsrender)  

【讨论】:

谢谢。现在看来我已经让它工作了。但这仍然让我感到困惑。顺便说一句,你的课程很有价值,但对我们中的许多人来说节奏有点太快了。 :-)

以上是关于如何在Require.js中引用捆绑的js文件(asp.net mvc4)?的主要内容,如果未能解决你的问题,请参考以下文章

require 模块化

如何将react.js 和laravel结合使用

requirejs 配制

如何选择与webpack捆绑的node_modules dist flavor

如何导入和使用方法描述在普通的js文件中使用require js?

如何解决require js加载timeout的问题