В процессе разработки на фреймворке Solid.js, как и в любой другой JavaScript-разработке, важным аспектом является поддержание чистоты и согласованности кода. Один из инструментов, который помогает в этом, — Prettier. Этот инструмент обеспечивает автоматическое форматирование кода, что позволяет избежать споров о стиле кода и ускоряет процесс разработки, фокусируясь на функциональности вместо визуальных нюансов.
Для начала работы с Prettier в проекте, созданном с использованием Solid.js, нужно установить сам инструмент. Воспользовавшись npm или yarn, можно легко интегрировать его в проект.
Для установки через npm:
npm install --save-dev prettier
Для установки через yarn:
yarn add --dev prettier
После установки можно создать конфигурационный файл для Prettier.
Наиболее удобный способ — это файл .prettierrc, в котором
можно настроить параметры форматирования:
{
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"tabWidth": 2,
"bracketSpacing": true
}
Параметры:
semi — добавлять ли точку с запятой в конце строк (по
умолчанию true).singleQuote — использовать ли одиночные кавычки для
строк (по умолчанию false).trailingComma — определяет, нужно ли оставлять запятую
в конце списков (включая объекты и массивы). Опция es5
активирует запятую в последних элементах объектов и массивов в
ES5-синтаксисе.tabWidth — количество пробелов для табуляции (по
умолчанию 2).bracketSpacing — добавлять ли пробелы между фигурными
скобками в объектах.Кроме того, можно настроить Prettier через файл
package.json:
{
"prettier": {
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"tabWidth": 2,
"bracketSpacing": true
}
}
Для удобства разработки можно интегрировать Prettier с редакторами, такими как VSCode, WebStorm или Sublime Text. Для этого достаточно установить соответствующий плагин. Например, в VSCode это будет расширение Prettier - Code formatter.
После установки плагина можно настроить автоматическое форматирование
при сохранении файлов. В VSCode это настраивается через файл настроек
(settings.json):
{
"editor.formatOnSave": true,
"prettier.requireConfig": true
}
Опция editor.formatOnSave включает автоматическое
форматирование при сохранении файла, а
prettier.requireConfig гарантирует, что Prettier будет
работать только при наличии конфигурационного файла, что полезно, если в
проекте используются разные настройки.
Solid.js как фреймворк не накладывает специфических ограничений на форматирование кода. Однако важно соблюдать единообразие стиля, особенно при работе с JSX, который используется в компонентах Solid. Prettier идеально подходит для этого, автоматически форматируя код в соответствии с выбранными параметрами.
Пример компонента Solid.js до применения Prettier:
import { createSignal } from "solid-js";
const App = () => {
const [count, setCount] = createSignal(0);
return (
<div>
<h1>Count: {count()}</h1>
<button onCl ick={() => setCount(count() + 1)}>Increment</button>
</div>
);
};
export default App;
После применения Prettier код будет выглядеть более чисто и структурировано:
import { createSignal } from "solid-js";
const App = () => {
const [count, setCount] = createSignal(0);
return (
<div>
<h1>Count: {count()}</h1>
<button onCl ick={() => setCount(count() + 1)}>Increment</button>
</div>
);
};
export default App;
Важно отметить, что даже небольшие элементы, такие как пробелы перед фигурными скобками или отступы, будут автоматически приведены к согласованному виду. Это позволяет снизить количество исправлений и ускоряет код-ревью.
lint-staged
и husky. Это позволяет автоматически форматировать код
перед коммитом, что делает процесс разработки еще более удобным.Пример конфигурации для lint-staged и
husky:
npx mrm lint-staged
В файле .lintstagedrc.json можно указать, что Prettier
должен автоматически форматировать все измененные файлы:
{
"*.js": ["prettier --write"]
}
Использование Prettier в Solid.js не только помогает поддерживать чистоту и читаемость кода, но и способствует ускорению процесса разработки за счет автоматизации задач форматирования. Интеграция с редакторами и средствами контроля версий позволяет применять форматирование на всех этапах разработки, минимизируя возможные ошибки и улучшая производительность команды.