2015-12-01 4 views
0

При запуске jshint для проверки JS кода, я часто получаю ошибки какJSHint с трубопроводом активов рельсов требует

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

Печенья приходит из

//= require js.cookie 

Каких скомпилированные как часть трубопровода активов Rails, так JSHint не знаю об этом.

Есть ли способ установить это, чтобы JSHint работал с файлом со всеми зависимостями на месте? Или есть другие альтернативы?

ответ

0

Вы можете использовать опцию globals, чтобы сообщить jshint об общих глобальных символах.

Если вышеуказанное окажется слишком утомительным, вы запустите jshint после запуска файлов через звездочки - то есть. запустите rake assets:precompile, а затем запустите jshint для сгенерированных файлов в public/assets.

Но самый лучший курс действий, я могу рекомендовать что-то другое:

Вы должны рассмотреть возможность использования надлежащей системы модуля в отличии от использования звездочки для управления яваскриптом зависимостей. Это позволит устранить коренную проблему общих глобальных переменных (которая широко считается плохой практикой программирования).

В то время как сообщество подошло multiple module systems с разнообразными уровнями принятия сообщества - лучшим вариантом сейчас является обнять ES6 modules standard. Хорошо, наконец, иметь стандартизованный подход к модульности. Недавно я написал короткий guide по интеграции модулей ES6 с рельсами.

Вкратце, стандарт модулей ES6 является превосходным вариантом для организации javascript сегодня, в отличие от решений, таких как директивы AMD, CommonJS или Sprockets, которые были разработаны в эпоху, когда стандартное решение для модульного javascript не было доступно.