繁体   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