ESLint在requireJS应用程序中如何修复意外返回?

时间:2013-01-29 06:23:00

标签: javascript jquery return requirejs jslint

我的应用程序正在运行requireJS,并使用两个文件进行设置:

main.js设置所有内容,app.js“运行”应用程序。

main.js看起来像这样:

/*jslint browser: true, indent : 2, nomen : true, sloppy : true */
/*global requirejs: false */
(function () {
    "use strict";

    requirejs.config({
        baseUrl: "../js"
      , paths: {
          app:          'app'
        , text:         'text'
        ...
      }
      , shim: {
        'overrides':     { deps: ['jquery'] }
        ...
      }
  });

  // init
  requirejs([ 'overrides',..., 'app'], 
    function( $, overrides, ..., App){
      App.start( $, overrides );
    });
}());

我的app.js

define([], function () {
    'use strict';
    var start = function () {
        require([ 'i18next'... ],
            function (i18n) {
                // stuff

            }
        );
    }
    return {"start": start};
});

我的问题是jslint抱怨return {"start": start};unexpected return。但是,省略它会导致我的应用程序因App being undefined而无法启动。

知道如何删除return语句并仍触发应用程序吗?或者如何调整以取悦JSLint?我不想使用JSHINT,所以请不要建议。

1 个答案:

答案 0 :(得分:4)

我首先添加缺少的分号:

define([], function () {
    'use strict';
    var start = function () {
        require([ 'i18next'... ],
            function (i18n) {
                // stuff

            }
        );
    }   // <============ here
    return {"start": start};
});

我怀疑这是jslint不开心的真正原因。 (我很惊讶这不是它抱怨的......)