Eslint w sealiousie wymaga zmiany rozszerzenia pliku eslintrc na .cjs

Gdy rozszerzenie to .js wyskakuje błąd

Oops! Something went wrong! :(

ESLint: 7.4.0

Error [ERR_REQUIRE_ESM]: require() of ES Module /projekt/.eslintrc.js from /usr/lib/node_modules/eslint/lib/cli-engine/config-array-factory.js not supported.
.eslintrc.js is treated as an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which declares all .js files in that package scope as ES modules.
Instead either rename .eslintrc.js to end in .cjs, change the requiring code to use dynamic import() which is available in allCommonJS modules, or change "type": "module" to "type": "commonjs" in /projekt/package.json to treat all .js files as CommonJS (using .mjs for all ES modules instead).

at module.exports (/usr/lib/node_modules/eslint/node_modules/import-fresh/index.js:31:59)
at loadJSConfigFile (/usr/lib/node_modules/eslint/lib/cli-engine/config-array-factory.js:218:16)
at loadConfigFile (/usr/lib/node_modules/eslint/lib/cli-engine/config-array-factory.js:301:20)
at ConfigArrayFactory.loadInDirectory (/usr/lib/node_modules/eslint/lib/cli-engine/config-array-factory.js:486:34)
at CascadingConfigArrayFactory._loadConfigInAncestors (/usr/lib/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:355:46)
at CascadingConfigArrayFactory.getConfigArrayForFile (/usr/lib/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:276:18)

To problem z sealiousem czy z eslintem po mojej stronie?

Wykonanie jakiej komendy wyrzuca taki error?

eslint .

Ach, ok. Linter jest odpalany przez Arcanista gdy robisz diffa, stąd odpalanie ręczne lintera zostało tak zaniedbane. Możesz odpalić arc lint albo arc lint ścieżka/do/pliku.ts, aby odpalić linter - czy to wystarczy na Twoje potrzeby, zanim fixniemy ten error z eslint .?

Jak próbuje zrobić diffa to odpala się linter i wyskakuje ten error, stąd moje pytanie.

Wystarczy zmienić rozszerzenie pliku eslintrc z .js na .cjs ale wtedy tą zmiane tez musiałbym umieścić w diffie.

1 Like

Po wporwadzeniu tej zmiany przy próbie zrobienia diffa wszystko się lintuje ale wyskakuje kolejny błąd na etapie testów, testowanie ręczne za pomocą npm run test działa bez probelmu.

 OKAY  No lint messages.
 LINT OKAY  No lint problems.
Running unit tests...
>>> [75] (+11,312) <exec> $ npm run test-reports
<<< [75] (+38,423) <exec> 27,110,503 us

[2024-05-16 16:44:52] EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arc-unit-mocha(), arcanist(), pinterest-linters()
  #0 PhutilErrorHandler::handleError(integer, string, string, integer) called at [<arcanist>/src/unit/renderer/ArcanistUnitConsoleRenderer.php:15]
  #1 ArcanistUnitConsoleRenderer::renderUnitResult(ArcanistUnitTestResult) called at [<arcanist>/src/workflow/ArcanistUnitWorkflow.php:189]
  #2 ArcanistUnitWorkflow::run() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:1231]
  #3 ArcanistDiffWorkflow::runUnit() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:1133]
  #4 ArcanistDiffWorkflow::runLintUnit() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:363]
  #5 ArcanistDiffWorkflow::run() called at [<arcanist>/scripts/arcanist.php:427]
<<< [1] (+38,537) <exec> 38,537,647 us

Hmmm. Być może coś nie gra z php i arcanistem. Co u Ciebie zwracają te komendy?

arc version && php --version

arc version && php --version
USAGE EXCEPTION Library “arcanist” (at “/usr/share/php/arcanist”) is not a Git working copy, so no version information can be provided.

Już googluje.

Jaką metodą instalowałeś Arcanista?

Za pomocą yay’a.

Spróbuj odinstalować tę wersję z yay i zainstalować za pomocą instrukcji z tego linka: ⚡ Arcanist - Phabricator CLI

Dzięki, pomogło. Od razu załącze linka do diffa.