ebody: VS Code - Code als minimierten Code kopieren

Hallo,

bietet VS Code standardmäßig oder über eine Erweiterung die Möglichkeit Code der nicht minimiert ist minimiert zu kopieren?

Es gäbe zwar z.B. die Möglichkeit den Code zu minimieren, dann zu kopieren. Danach müsste ich ihn aber wieder auf normal setzen, weil ich ihn übersichtlicher brauche.

Daher wäre es hilfreich den Code markieren und als minimierten Code kopieren zu können.

Gruß ebody

  1. in VSCodium habe ich dazu nur das hier gefunden:

    Erweiterung: MinifyAll

    Bewerbung:

    Simple VSCode minifier for CSS, HTML ,JSON, JavaScript, JavaScriptReact(beta), LESS, SASS, SCSS, and JSONC. you will love its simplicity!

  2. Tach!

    bietet VS Code standardmäßig oder über eine Erweiterung die Möglichkeit Code der nicht minimiert ist minimiert zu kopieren?

    Ich weiß ja nicht, warum du den kopieren möchtest, aber es gibt auf alle Fälle Werkzeuge, die Dinge automatisiert ausführen. Ich würde den Code also in eine Datei minifizieren lassen. Und wann immer du den minifizierten Code brauchst, holst du ihn von dort. Wenn das Kopieren aber nur ein Teil einer regelmäßig auszuführenden Prozedur ist, dann würde ich versuchen, die ganze Prozedur zu automatisieren. Build-Tools gibts es so einige.

    dedlfix.

    1. Hallo dedlfix,

      minifiziert vs minimiert - ist das das Gleiche?

      Mit "minimieren" assoziiere ich das Einklappen von Funktionen oder Klassen

      Mit "minifizieren" assoziiere ich etwas, das man im Editor gar nicht sehen möchte, nämlich das Entfernen von syntaktisch überflüssigen Leerzeichen, von Kommentaren, Ersetzen von Logik-Statements durch gleichwertige logische Ausdrücke und das Ersetzen von Namen durch Kürzel (auch uglifizieren genannt)

      Minifizierung / Uglifizierung wird im Rahmen des Toolstacks durchgeführt und stellt im Ergebnis etwas dar, das man als Objectcode ansehen muss: Generiert und nicht zur Ansicht durch Menschen bestimmt.

      Aber in beiden Fällen stellt sich die Frage: Warum kopieren und warum nicht als fertige Komponente nutzen?

      Rolf

      --
      sumpsi - posui - obstruxi
      1. Hallo Rolf,

        minifiziert vs minimiert - ist das das Gleiche?

        ich vermute zumindest, ebody hat es so gemeint. Obwohl mir deine Differenzierung durchaus schlüssig erscheint.

        [...] Ersetzen von Logik-Statements durch gleichwertige logische Ausdrücke

        Aber was meinst du damit? Kannst du ein Beispiel geben? Meinst du damit z.B. den massiven Ersatz von if...else durch den ternären Fragezeichen-Operator? Das würde für sich allein betrachtet sogar oft die Lesbarkeit von Code verbessern, finde ich.

        (auch uglifizieren genannt)

        Oder auch obfuscating. Denn neben der Verringerung der zu übertragenden Datenmenge ist ein weiterer Zweck solcher Maßnahmen, das Lesen und Nachvollziehen des Codes erheblich zu erschweren.

        Live long and pros healthy,
         Martin

        --
        Hunde, die bellen, beißen nicht.
        Jedenfalls nicht gleichzeitig.
        1. Hallo Martin,

          Aber was meinst du damit?

          Der ternäre Operator ist ein Werkzeug der Minifizierer, ja.

          Ein anderes ist der Umstand, dass die booleschen Operatoren in JavaScript genau das nicht sind, sondern "boolesy" funktionieren.

          In JS gilt nicht die klassische Wahrheitstabelle beim Auflösen von && und ||. Statt dessen selektieren die Operatoren einen ihrer beiden Operanden, je nach dem Wert des linken Operanden.

          a && b ergibt a, wenn a falsy ist und b, wenn a truthy ist
          a || b ergibt b, wenn a falsy ist und a, wenn a truthy ist

          Das Ergebnis ist die bekannte Wahrheitstabelle, wenn man TRUE und FALSE für a und b einsetzt, aber weil es in JS mehr Wahr und Falsch als TRUE und FALSE gibt, kann man das ausnutzen.

          let b;
          if (a && a.fooProp) {
             b = a.fooProp;
          }
          else
          {
             b = "Kein Wert vorhanden";
          }
          // -------------
          let b = a && a.fooProp || "Kein Wert vorhanden";
          

          Unter dem Strich passiert das gleiche wie drüber (hoffe ich 😂)

          Der ternäre Operator wird aber erst richtig schick, wenn man noch den Kommaoperator in die Suppe rührt (x,y,z ergibt z). Dann kommt sowas dabei raus:

          if (pi == 3.14) {
             daumen = 9;
             hugo = 3;
             otto = 17;
             return 4:
          }
          else {
             daumen = 0;
             hugo = 1;
             return 0;
          } 
          // ----------------
          return pi==3.14?(daumen=9,hugo=3,otto=17,4):(daumen=0,hugo=1,0);
          

          Ich glaube, die Klammern kann man sogar weglassen, weil ?: höhere Prio hat als das Komma. Und das ,0 im zweiten Teil könnte man durch Umordnen auch noch loswerden, was aber nebenwirkungsfreie Einzelschritte verlangt.

          Rolf

          --
          sumpsi - posui - obstruxi
          1. return pi==3.14?(daumen=9,hugo=3,otto=17,4):(daumen=0,hugo=1,0);
            

            … Und ich meckere über Perl …