【Astro】Linter(Prettier・Stylelint・ESLint)の初期設定を行う

npm create astro@latestした後の各種Linterの設定でやったことをまとめる。

※あくまでAstroを利用する上で最低限必要になるものだけを導入していく。

設定方法

Prettier

1. インストール

Terminal window
npm install --save-dev prettier prettier-plugin-astro

2. 設定ファイルの作成

Terminal window
touch prettier.config.cjs
/** @type {import("prettier").Config} */
module.exports = {
plugins: ["prettier-plugin-astro"],
overrides: [
{
files: "*.astro",
options: {
parser: "astro",
},
},
],
};

3. npm scriptsへの登録

{
"scripts": {
"prettier": "prettier --write 'src/**/*.{ts,astro,scss}'"
}
}

Stylelint

SCSSを使う前提。

1. インストール

Terminal window
npm install --save-dev stylelint stylelint-scss stylelint-prettier stylelint-config-standard-scss

2. 設定ファイルの作成

Terminal window
touch stylelint.config.cjs
module.exports = {
plugins: ["stylelint-scss", "stylelint-prettier"],
extends: ["stylelint-config-standard-scss"],
rules: {
"prettier/prettier": true,
},
};

3. npm scriptsへの登録

{
"scripts": {
"prettier": "prettier --write 'src/**/*.{ts,astro,scss}'",
"stylelint": "stylelint --fix 'src/**/*.scss'"
}
}

ESLint

TypeScriptを使う前提。

1. インストール

Terminal window
npm install --save-dev eslint eslint-plugin-astro @typescript-eslint/parser

2. 設定ファイルの作成

Terminal window
touch .eslintrc.cjs
module.exports = {
extends: [
"eslint:recommended",
'plugin:@typescript-eslint/recommended',
'plugin:astro/recommended',
],
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
project: "./tsconfig.json",
},
globals: {
astroHTML: true,
},
overrides: [
{
files: ["*.ts"],
parser: "@typescript-eslint/parser",
},
{
files: ['*.astro'],
parser: 'astro-eslint-parser',
parserOptions: {
parser: '@typescript-eslint/parser',
extraFileExtensions: ['.astro'],
},
},
],
};

3. npm scriptsへの登録

{
"scripts": {
"prettier": "prettier --write 'src/**/*.{ts,astro,scss}'",
"stylelint": "stylelint --fix 'src/**/*.scss'",
"eslint": "eslint --fix 'src/**/*.{ts,astro}'"
}
}

今回追加したパッケージ

参考程度にpackage.jsonの中身を貼っておく。

{
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro",
"prettier": "prettier --write 'src/**/*.{ts,astro}'",
"stylelint": "stylelint --fix 'src/**/*.scss'",
"eslint": "eslint --fix 'src/**/*.{ts,astro}'"
},
"dependencies": {
"astro": "^3.0.12"
},
"devDependencies": {
"@typescript-eslint/parser": "^6.6.0",
"eslint": "^8.49.0",
"eslint-plugin-astro": "^0.29.0",
"prettier": "^3.0.3",
"prettier-plugin-astro": "^0.12.0",
"stylelint": "^15.10.3",
"stylelint-config-standard-scss": "^11.0.0",
"stylelint-prettier": "^4.0.2",
"stylelint-scss": "^5.1.0"
}
}

1

参考
  1. Editor Setup 🚀 Astro Documentation