【问题标题】:How to fix unexpected return when JSLint-ing a requireJS application?JSHint-in requireJS 应用程序时如何修复意外返回?
【发布时间】:2013-01-12 15:59:39
【问题描述】:

我的应用程序正在运行 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 而无法启动。

知道如何删除返回语句并仍然触发应用程序吗?或者如何调整以取悦 JSLint?我不想用JSHINT,所以请不要推荐。

【问题讨论】:

  • 没有错,但我几乎通过了 JSLint,所以……为什么要选择 JSHint。
  • 取决于你对“通过测试”的认真程度。我将 linting 视为 HTML 和 CSS 验证,如果有理由违反规则,那么我不希望它打扰我,这就是我更喜欢 JSHint 的原因,您有更多选择来调整您的需求。
  • 真的。但我有点卡在 JSLint 上。还是谢谢你的指点。
  • @frequent: "...但是我几乎要通过 JSLint,所以...为什么要满足于 JSHint..." 请记住,石碑上没有交付任何东西关于 jslint。其中大约一半是 Crockford 的 style 偏好,除此之外没有其他依据。 (另一半是有事实依据的好声音。) JSHint 的好处是它可以让你决定是使用 Crockford 的风格还是你自己的风格。

标签: javascript jquery return requirejs jslint


【解决方案1】:

我先添加缺少的分号:

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

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

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

【讨论】:

  • 神奇!做到了。当一个函数现在设置为var x = function(){}!!;!! 时,jslint 不会在寻找分号,可以吗?
  • @frequent:我很惊讶它收到错误消息,但我很高兴修复了它!
猜你喜欢
  • 2019-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-24
  • 2019-12-23
  • 2020-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多