簡體   English   中英

具有Rails資產管道的JSHint需要

[英]JSHint with rails asset pipeline requires

當運行jshint驗證JS代碼時,我經常會遇到類似以下錯誤

line 264, col 11, 'Cookies' is not defined.

Cookies來自

//= require js.cookie

哪個是作為Rails資產管道的一部分進行編譯的,所以JSHint對此一無所知。

有沒有辦法設置它,以便JSHint在具有所有依賴項的文件上運行? 還是有其他選擇?

您可以考慮使用globals選項使jshint意識到共享的全局變量。

如果以上內容過於繁瑣,則可以在通過鏈輪運行文件后運行jshint,即。 運行rake assets:precompile ,然后對public/assets生成的文件運行jshint。

但是我推薦的最佳做法是有所不同:

您應該考慮使用適當的模塊系統,而不是使用鏈輪進行javascript依賴性管理。 這將緩解共享全局變量的根本問題(這是公認的不良編程習慣)。

盡管社區提出了具有不同社區接受程度的多個模塊系統 ,但目前最好的選擇是采用ES6模塊標准 終於有了標准化的模塊化方法是很好的。 我最近寫了一份關於將ES6模塊與rails集成的簡短指南

簡而言之,ES6模塊標准是當今組織javascript的上乘之選,與AMD,CommonJS或Sprockets指令之類的解決方案相對,后者在沒有模塊化javascript標准化解決方案的時代就已經開發出來了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM