Javascript JShint警告:jQuery插件标记错误';定义但从未使用';在AMD
JSHint在jQueryPlugin的声明上抛出“jQueryPlugin已定义但从未使用”错误 我如何告诉JSHint忽略这个特定错误,或者以JSHint理解的方式定义jQueryPluginJavascript 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) //
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
)$
上,通常返回未定义的
作为其模块值这看起来很奇怪,传入的模块比模块句柄多,但它可以工作——所以jQuery模块(以及其他不返回值的模块)必须列在最后?我一直认为(显然是错误的)每个模块都需要一个传入参数。不返回值的模块不必列在最后,但在依赖项中列在最后是很有用的,这样您就可以在给
define
(或require
)。顺便说一句,这只是利用了JavaScript通常的工作方式。您可以使用比定义的参数数量更多的参数调用任何函数,这正是调用define
(或require
)时发生的情况依赖项数组的元素数超过函数上声明的参数数。