2016-06-09 44 views
0

我正在編寫庫。我試圖修改它,以便它使用自定義播放器而不是HTML5播放器。 所以,我用custFunc1()與我的自定義播放器的呼叫(play()等)替換函數調用。這些呼叫在單獨的文件中定義:custPlayer.js調用在Javascript庫之外定義的函數

所以在我的index.html文件,我將首先包括custPlayer.js文件,然後內置文件。

但問題是,當使用grunt構建video.js包時,我得到的錯誤是未定義,因此grunt無法創建video.js庫。

現在,我能夠從一個同事說在包中的特定文件的開頭添加 /*全球custFunc1 */ 從那裏我打電話custFunc1解決了問題找出來。咕嚕生成成功,它工作正常。

所以我想知道的是:

  1. 如何,這實際上解決這個問題,因爲這是完全一樣的JavaScript註釋,它是如何區別對待這一點,明白這表明函數定義將出現在庫之外?

  2. 是字全球 JavaScript中的某種關鍵字?

  3. 除了我提到的之外,還有其他方法可以實現這一點嗎?

  4. 稍微有點不同,我想問一下是否等於

回答

1

您的JavaScript正在linted爲您咕嚕過程的一部分,如果你看一下你的項目文件夾的根目錄,你應該可以看到.jshintrc或類似的規定文件(不同,這取決於棉短絨)。

您的當前設置意味着linter一次只能處理一個.js文件,如果它遇到來自其他文件的變量或函數,它會拋出錯誤。您可以關閉此檢查或將custFunc1添加到已知全局變量的數組中。在jshint你做它像這樣 - https://github.com/gruntjs/grunt-contrib-jshint#jshintrc

{ 
    "globals": { 
    "custFunc1": true 
    } 
} 

的全局變量可能已經存在的文件中,因此只需添加custFunc1:忠實於它。

哦,並回答問題1 - 註釋類型語法告訴linter忽略它當前文件的設置,基本上覆蓋了.jshintrc文件中的設置。

2 - 是的,它是jshintrc中的一個設置,並且您將custFunc1添加到文件本身而不是全局中。jshintrc文件。

3 - 上面提到。

4 - 從未使用的製造商,但是我相信它的類似之處在於它的預處理工具

相關問題