Hilfe bei der Konfiguration von rubocop, eslint und so weiter in VS Code und der Kommandozeile

Ich habe es satt, Code einzureichen, der Linting-Tests nicht besteht. Manchmal kann ich die Befehle rubocop oder yarn eslint (und so weiter) von GitHub in mein Terminal kopieren und einfügen und das funktioniert dann, aber das funktioniert auch gerade nicht.

Ich bekomme Fehler wie

 No parser could be inferred for file: ...

Für einige Dateien unter bestimmten Bedingungen formatiert VS Code beim Speichern richtig und teilt mir mit, dass ein Syntaxfehler vorliegt, aber das funktioniert jetzt nicht mehr.

Was möchten Sie erledigt haben?

Ich möchte einen Zoom- (oder was auch immer) Bildschirmsuchlauf machen und Sie bitten, mich durch die Dinge zu führen, damit

  • VS Code beim Speichern alles ausführt, was es tun sollte, und die Formatierung korrigiert oder mir mitteilt, dass etwas kaputt ist.
  • Ich yarn eslint und alles andere, was in den Linting-Tests enthalten ist, von der Kommandozeile aus ausführen kann.

Wann brauchen Sie es erledigt?

Bevor ich endgültig durchdrehe.

Was ist Ihr Budget in US-Dollar, das Sie für diese Aufgabe anbieten können?

Ich benutze Pop!Os, was im Grunde Ubuntu ist.

Wenn Sie ziemlich sicher sind, dass Sie dieses Problem lösen können, bin ich bereit, eine Stunde Ihrer Zeit zu Ihrem Standardsatz zu bezahlen. Wenn Sie es in zehn Minuten schaffen, zahle ich gerne eine Stunde. Jeder gewinnt.

2 „Gefällt mir“

Jay,

frustrierend, oder?

Was ich für so etwas mache ist:

  • die CI-Workflows für ein beliebtes Plugin untersuchen
  • die zugehörige Konfiguration im Stammverzeichnis des Plugins ansehen

Du kannst hier sehen, was meine Linting-Tests für Chatbot tun:

Ich glaube, du kannst eslint und prettier vom Plugin-Verzeichnis aus ausführen, aber rubocop kann vom Discourse-Verzeichnis aus ausgeführt werden.

Wenn das dein Problem löst, kannst du dies gerne in ein #dev-Thema umwandeln, und du bist willkommen :slight_smile:

1 „Gefällt mir“

Was ich tue, ist, blind die Workflows von GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins und GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes zu kopieren. (Ich muss die Plugin-Version ein wenig für mein Dashboard-Plugin anpassen, das vom Stripe-Plugin abhängt). Ich bin bereit zu glauben, dass dies gut genug ist, um das Linting durchzuführen.

Ich möchte jedoch, dass VSCode das Linting durchführt, bevor ich committe. Es hat in der Vergangenheit funktioniert, aber es hat aufgehört und ich fühle mich wie jemand, der vor 20 Jahren etwas über Emacs wusste und jetzt etwas über VSCode weiß, könnte so etwas sagen wie: „Drücken Sie Strg-P, dann das Ding, um das Formatierungsding zu installieren, dann bearbeiten Sie die Konfigurationsdatei, damit sie das Richtige tut“, und dann könnte ich wieder Strg-S drücken und meine Handlebars, JavaScript und was auch immer sonst noch schön formatiert haben und auch alle lästigen Variablen finden, die ich definiert, aber nie benutzt habe und so weiter.

Näher dran

OK, aber ich habe das hier gemacht:

      npm install --global yarn
      yarn add prettier

Und jetzt habe ich discourse-prettier:

#!/usr/bin/env bash
if [ -n "$(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --write "assets/**/*.{scss,js,es6,hbs}"
fi
if [ -n "$(find admin/assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --write "admin/assets/**/*.{scss,js,es6,hbs}"
fi
if [ 0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then
  yarn prettier --write "test/**/*.{js,es6}"
fi

if [ -n "$(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --list-different "assets/**/*.{scss,js,es6,hbs}"
fi
if [ -n "$(find admin/assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --list-different "admin/assets/**/*.{scss,js,es6,hbs}"
fi
if [ 0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then
  yarn prettier --list-different "test/**/*.{js,es6}"
fi

Das hat einen Teil meines Problems gelöst, so dass ich zumindest prettier von der Kommandozeile ausführen kann. Aber ich bin immer noch bereit, für Hilfe zu bezahlen, um VSCode meine schmutzige Arbeit machen zu lassen. Wenn ich speichere, sollte es eslint (oder rubop oder was auch immer) ausführen und es entweder beheben oder mir sagen, dass es das nicht kann. Ich bin zu alt, um zu glauben, dass mein Editor meinen Code schreiben sollte, aber nicht zu alt, um zu denken, dass er ihn nicht formatieren sollte.

Es gab früher einmal ein Thema, in dem jemand vorschlug, welche VSCode-Plugins er verwendete, was mir ein wenig half, aber ich sehe es jetzt nicht mehr.

1 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.