Javascript JShint警告:jQuery插件标记错误';定义但从未使用';在AMD

Javascript JShint警告:jQuery插件标记错误';定义但从未使用';在AMD,javascript,jquery,requirejs,amd,jshint,Javascript,Jquery,Requirejs,Amd,Jshint,JSHint在jQueryPlugin的声明上抛出“jQueryPlugin已定义但从未使用”错误 我如何告诉JSHint忽略这个特定错误,或者以JSHint理解的方式定义jQueryPlugin define([ 'jquery', 'underscore', 'backbone', 'some-jquery-plugin' ], function ($, _, Backbone, jQueryPlugin) //

JSHint在jQueryPlugin的声明上抛出“jQueryPlugin已定义但从未使用”错误

我如何告诉JSHint忽略这个特定错误,或者以JSHint理解的方式定义jQueryPlugin

    define([
        'jquery',
        'underscore',
        'backbone',
        'some-jquery-plugin'
    ], function ($, _, Backbone, jQueryPlugin) //here is the error
    {
        'use strict';
        var someView = Backbone.View.extend(
        {
            someFunction: function ()
            {
                $('#a-css-id').jQueryPlugin();
            },
        });
        return someView;
    });
我尝试过的事情

/*导出的jQueryPlugin*/
文件顶部的导出语句不适用于此(在其他问题中已建议)

/*jshint unused:false*/
有效,但使规则在文件中成为全局规则(2000多行代码),因此我不认为它是可行的解决方案


/*jshint ignore:line*/
显然未在构建系统中启用-因此我无法提交此更改(grunt contrib jshint)

最简单的解决方案是从参数列表中删除
jQueryPlugin

define([
        'jquery',
        'underscore',
        'backbone',
        'some-jquery-plugin'
    ], function ($, _, Backbone) 
    {
原因有二:

  • 您不使用该值。(您使用的是不同的
    $(…).jQueryPlugin

  • 我已经用RequireJS加载了许多jQuery插件,但从未遇到过任何作为模块返回有用值的插件。它们都安装在
    $
    上,通常返回
    未定义的
    作为其模块值


  • 这看起来很奇怪,传入的模块比模块句柄多,但它可以工作——所以jQuery模块(以及其他不返回值的模块)必须列在最后?我一直认为(显然是错误的)每个模块都需要一个传入参数。不返回值的模块不必列在最后,但在依赖项中列在最后是很有用的,这样您就可以在给
    define
    (或
    require
    )。顺便说一句,这只是利用了JavaScript通常的工作方式。您可以使用比定义的参数数量更多的参数调用任何函数,这正是调用
    define
    (或
    require
    )时发生的情况依赖项数组的元素数超过函数上声明的参数数。