【问题标题】:MVC bundling with minification and require.jsMVC 与 minification 和 require.js 捆绑
【发布时间】:2014-05-07 20:56:30
【问题描述】:

我正在构建一个 MVC 应用程序并在其中使用 angular 和 require.js。

我已将我的 JS 文件定义如下。

第一个 JS 文件:

define(function (require) {
    'use strict';
     var angular = require('angular');
     var app = angular.module('App');

     app.service('Service1', function () {
     });
}); 

第二个 JS 文件:

define(function (require) {
    'use strict';
     var angular = require('angular');
     var app = angular.module('App');

     app.service('Service2', function () {
     });
});

在 require js 配置中,我给出了脚本包的路径,可以看到 JS 文件被打包并缩小并被加载。但是我们收到一个错误“Service2 is not defined”。

当我合并两个文件或从单个文件中删除“define(function (require)”时,一切正常。

合并文件:

define(function (require) {
    'use strict';
     var angular = require('angular');
     var app = angular.module('App');

     app.service('Service1', function () {
     });

     app.service('Service2', function () {
     });
});

第一个 JS 文件:

    'use strict';
     var angular = require('angular');
     var app = angular.module('App');

     app.service('Service1', function () {
     });

第二个 JS 文件:

    'use strict';
     var angular = require('angular');
     var app = angular.module('App');

     app.service('Service2', function () {
     });

我无法像上面那样合并文件,因为我有大量的 JS 文件。

我不能 100% 确定如果我删除“define(function (require)”会有什么影响。

在我的场景中使用 MVC 的捆绑和缩小功能的最佳方法是什么?

谢谢。

【问题讨论】:

    标签: javascript asp.net-mvc angularjs requirejs


    【解决方案1】:

    传递给define的函数只有在其他东西需要它时才会运行。所以你的 service 2 is not defined 错误可能是因为你没有明确要求它。

    require(['First', 'Second'], function () {
        //Use Service1 and Service2
    });
    

    【讨论】:

      猜你喜欢
      • 2012-10-02
      • 1970-01-01
      • 2015-09-09
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 2013-03-07
      相关资源
      最近更新 更多