我正在使用JSLint對大量與外部ERP系統交互的腳本執行代碼審查/清理。Howto:引用JSLint中的庫
我遇到的問題是JSLint抱怨API中的方法在被定義之前使用。
如何在JSLint中引用庫以便進行適當的查找?我有493個函數需要引用,所以/*Global*/
不是一個選項。
如果這是不可能的,是否有更好的方法來做到這一點?
我引用this post這是要求類似的東西,但答案需要API的重組,這是我無法做到的。
我正在使用JSLint對大量與外部ERP系統交互的腳本執行代碼審查/清理。Howto:引用JSLint中的庫
我遇到的問題是JSLint抱怨API中的方法在被定義之前使用。
如何在JSLint中引用庫以便進行適當的查找?我有493個函數需要引用,所以/*Global*/
不是一個選項。
如果這是不可能的,是否有更好的方法來做到這一點?
我引用this post這是要求類似的東西,但答案需要API的重組,這是我無法做到的。
什麼是圖書館?通常,你希望庫有一切正確的名稱空間,所以這不是問題,如在/*global $*/
的jQuery。如果lib是內部的並且可以編輯它,請考慮這樣做(如果您想堅持嚴格的JSLint合規性)。
所以......
function myFunc1(param1) {
return param1 + "some string1";
}
function myFunc2(param2) {
return param2 + "some string2";
}
成爲...
var fauxNamespace = {
myFunc1: function (param1) {
return param1 + "some string1";
},
myFunc2: function (param2) {
return param2 + "some string2";
}
};
然後你可以/*global fauxNamespace*/
和利潤。我意識到這是不平凡的,但它是正確的事情(c)Crockford 2008.
否則你回到正常的「使用JSHint。它更快樂,因爲更多的選擇,」或「JSLint有very clean code。實際上可以自己破解它,如果你想要忽略那個錯誤,「各種答案。
你在找什麼,目前圍繞line 2459:
// If the master is not in scope, then we may have an undeclared variable.
// Check the predefined list. If it was predefined, create the global
// variable.
if (!master) {
writeable = predefined[name];
if (typeof writeable === 'boolean') {
global_scope[name] = master = {
dead: false,
function: global_funct,
kind: 'var',
string: name,
writeable: writeable
};
// But if the variable is not in scope, and is not predefined, and if we are not
// in the global scope, then we have an undefined variable error.
} else {
token.warn('used_before_a');
}
} else {
this.master = master;
}
是圖書館公衆?
糟糕。你引用了我之前就類似話題的回答。是的,如果你不能完成上述任務,你會陷入困境。 JSHint可能是「友好的」,或者你真的可以很容易地編輯JSLint。 – ruffin
我想的很多。這是NetSuite API,因此無法對其進行編輯。儘管我已經能夠通過使用Aptana Studio擺脫大多數投訴,但它可以輕鬆忽略具體錯誤:-) –