[英]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.