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