Компания 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.