デフォルトのリンティング構成と、それが機能するはずの方法との間に大きな違いが見られます。
デフォルトの構成では、eslint-config-discourse パッケージが devDependency としてインストールされます。
https://www.npmjs.com/package/eslint-config-discourse
しかし、ソースコードを GitHub - discourse/lint-configs で確認すると、リポジトリは @discourse/lint-configs にリダイレクトされます。これは eslint-config-discourse monorepo の下のパッケージでもあります。含まれているテストにより、eslint-config-discourse はラッパーであるべきだと思いますが、少なくとも私の経験では、期待どおりに機能していません。
デフォルトのリンティング構成
discourse_theme newコマンドを使用して新しいテーマを作成します。- 生成されたリンティング構成を確認します。
a..eslintrc
b.{ "extends": "eslint-config-discourse", "globals": { "settings": "readonly", "themePrefix": "readonly" } }.template-lintrc.js:
c.module.exports = { plugins: ["ember-template-lint-plugin-discourse"], extends: "discourse:recommended", };package.json{ "license": "MIT", "devDependencies": { "eslint-config-discourse": "latest" } } - パッケージで Prettier を実行すると、
*.gjsファイルに関するエラーが発生します。yarn prettier --check --write "{common,javascripts,desktop,mobile,test,scss}/**/*.{js,gjs,es6,scss}"Error: No parser could be inferred for file ... .gjs
@discourse/lint-configs を直接構成する
https://www.npmjs.com/package/@discourse/lint-configs
yarn remove -D eslint-config-discourseを実行してパッケージをアンインストールします。yarn add -D @discourse/lint-configsを実行して開発依存関係としてインストールします。- 説明に従って、リンティング構成ファイルを作成します。
a..eslintrcファイルを.eslintrc.cjsに置き換えます。
b.module.exports = require("@discourse/lint-configs/eslint-theme");.prettierrc.cjsファイルを追加します。
c.module.exports = require("@discourse/lint-configs/prettier");.template-lintrc.jsファイルを.template-lintrc.cjsに置き換えます。module.exports = require("@discourse/lint-configs/template-lint"); - Prettier を再度実行し、エラーなしで機能することを確認します。
$ yarn prettier --check --write "{common,javascripts,desktop,mobile,test,scss}/**/*.{js,gjs,es6,scss}" Checking formatting... All matched files use Prettier code style! ✨ Done in 0.46s.
したがって、discourse_theme CLI が古いと仮定し、今後プロジェクトでは @discourse/lint-configs オプションを使用すべきでしょうか?

