Компания Salesforce недавно выпустила инструменты, помогающие разработчикам в работе с предстоящим сервисом Lightning Locker. Мохит Шривастава недавно написал отличное пошаговое руководство о том, как использовать новый интерфейс командной строки Salesforce Lightning для проверки соответствия вашего текущего компонента молнии правилам службы блокировки. В поисках способа интегрировать эту систему проверок в мой текущий рабочий процесс я копался в исходном коде, представленном в базовом модуле узла. В своем текущем состоянии интерфейс командной строки Salesforce Lightning построен на базе ESLint и использует Heroku Toolbelt для интеграции с интерфейсом командной строки. Это отлично подходит для сканирования существующих кодовых баз на предмет соответствия, но, предпочитая обратную связь в реальном времени во время разработки, я надеялся найти способ сократить цикл итераций разработки.
Предпочтительным методом было бы создание подключаемого модуля ESLint, инкапсулирующего настраиваемые правила, определенные в интерфейсе командной строки Salesforce Lightning. Однако, поскольку Salesforce будет постоянно обновлять правила ESLint, а лицензия CLI подпадает под их Основное соглашение о подписке, более прямой метод кажется более подходящим. Используя файл конфигурации eslintrc.js, вы можете получать обратную связь в реальном времени, используя редактор Atom и его мощную систему пакетов.
Предполагая, что у вас установлены Atom и MavensMate и вы уже используете ESlint, для настройки потребуется всего несколько шагов.
Шаг 1. В папке /src/aura создайте файл eslintrc.js на верхнем уровне.
var auraConfig = require(‘salesforce-lightning-cli/lib/aura-component-config.js’); var rules = require(‘eslint/lib/rules’); var esRuleLoader = require(‘eslint/lib/load-rules’); var auraRules = esRuleLoader(‘node_modules/salesforce-lightning-cli/rules’, __dirname); Object.keys(auraRules).forEach(function (name) { rules.define(name, auraRules[name]); }); auraConfig.eslintrc = true; module.exports = auraConfig;
Шаг 2. Создайте файл package.json в той же папке.
npm init
Шаг 3. Установите модуль Salesforce-lightning-cli npm.
npm i salesforce-lightning-cli -S
Если у вас уже установлен пакет Atom ESLint, теперь вы должны увидеть дополнительные правила в действии. Благодаря встроенной каскадной конфигурации ESLint вы не повлияете на другие конфигурации выше в структуре папок.
Результаты:
По мере ввода плагин Atom ESLint теперь будет сканировать любые шаблоны, которые не соответствуют предстоящей службе блокировки. Например, если сервис почтового шкафчика больше не находится в iframe, ссылка на документ может быть рискованной:
или если вы просто не можете перестать использовать instanceof, вы увидите это:
или для предотвращения проблем с прямым сравнением с примитивами Array или Object из-за использования искусственного глобального контекста внутри компонентов.
Этот подход должен быть относительно простым для настройки с помощью Sublime Text и Visual Studio Code или даже для интеграции с инструментами сборки, такими как Webpack.