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.

1 Like

Review zrobione, możesz lądować :+1: :flight_arrival:

To ja przy okazji zapytam, bo chciałem użyć eslinta pierwszy raz od 2 lat i kiedyś plik konfiguracyjny miał rozszerzenie *.js, teraz utworzył mi się *.mjs tutaj w wątku pada nazwa *.cjs - to ile jest tych rozszerzeń i jakie to ma znaczenie???

Co gorsza, kiedyś byłem w stanie sobie ręcznie regułki dopisywać i jakoś wiedziałem co z czym a teraz doczytałem że tworzy mi się jakiś flatConfig, który jest dla mnie nieczytelny :frowning:

Przy lądowaniu wyskakuje mi taki błąd:


fatal: unable to access 'https://hub.sealcode.org/diffusion/S/sealious.git/': The requested URL returned error: 403

LOAD STATE  Restoring local state (to ref "dev" at commit "1827e912f459").
USAGE EXCEPTION  Push failed! Fix the error and run "arc land" again.

mam coś źle skonfugurowane?

Musisz używać gitowych urli opartych o ssh://, a nie o https://.

Utwórz klucz ssh:

https://hub.sealcode.org/w/sealhub_workflow/narzedzia/klucz-ssh/

A następnie podmień adres repo:

git remote set-url origin `ssh://git@hub.sealcode.org/source/sealious.git`

I spróbuj ponownie

Dobra dzięki wylądowany.

1 Like