suchen
HeimWeb-FrontendCSS-TutorialIch teile nur meine Schluckfile

Ich teile nur meine Schluckfile

Anscheinend aus heiterem Himmel, begann die Gulp -Verarbeitung, die ich für diese Seite eingerichtet hatte, einen Rennzustand. Ich würde meinen Beobachtungsbefehl ausführen, einige CSS ändern, und die Verarbeitung hinterließ manchmal einige zusätzliche Dateien, die während der Verarbeitung gereinigt werden sollten. Wie die Aufräumarbeiten ereigneten sich, bevor die Dateien im Dateisystem gelandet sind (oder so ... ich bin nie wirklich auf den Grund gekommen).

Immer über die Besonderheiten dieses Fehlers. Ich dachte mir, ich würde es lösen, indem ich Dinge für die Verwendung von Gulp 4.x anstelle von 3.x aufrüstete und Dinge im integrierten Befehl gulp.series ausführte, was ich für helfen würde (es tat es).

Gulp 4.x zu bekommen war für mich ein verdammter Reise, mit der ich ein Jahr lang aufgieß, dann den Kampf wieder entzündete und ihn letztendlich reparieren kann. Mein Problem war, dass Gulp 4 eine CLI -Version von 2.x benötigt, während Gulp 3 aus irgendeinem Grund eine 3.x -Version verwendet hat. Im Wesentlichen musste ich Versionen herabstufen , aber nachdem ich eine Milliarde Dinge dafür ausprobiert hatte, schien nichts zu funktionieren, als ob es eine Ghost -Version von CLI 3.x auf meiner Maschine gab.

Ich bin mir sicher, dass die Leute von Savvier Command Line dies schneller als ich vergrößern können, aber es stellt sich heraus, dass der Befehlsbefehls-Gulp den Dateipfad enthüllt, an dem Gulp installiert ist, der enthüllt/usr/local/share/npm/bin/bin/gulp für mich und manuell von dort vor der Wiedereinstufung der letzten Version, die bei der Wiederherstellung von 2.2 Uhr gelöscht wurde.

Jetzt, da ich Gulp 4.x verwenden konnte, habe ich meine gulffile.js in kleinere Funktionen umschreibt, die jeweils in der Verantwortung isoliert sind. Ein Großteil davon ist ziemlich einzigartig für mein Setup auf dieser Seite, daher ist es nicht als Kesselplatte für die generische Verwendung gedacht. Ich veröffentlichen nur, weil es mir sicher hilfreich gewesen wäre, als ich es erstellt habe.

Dinge, die meine besondere Schluck tut

  • Führen Sie einen Webserver (BrowserSync) für Style-Injektion und automatische Aufregung aus
  • Führt einen Dateibeobachter (native Gulp -Funktion) aus, um die richtigen Aufgaben auf den richtigen Dateien auszuführen und die oben genannten Dinge zu erledigen
  • CSS -Verarbeitung
    • SASS> Autoprefixer> Minify
    • Break Stylesheet -Cache aus den Vorlagen (zB
    • Setzen Sie Style.css an der richtigen Stelle für ein WordPress -Thema und reinigen Sie Dateien, die nur während der Verarbeitung benötigt werden
  • JavaScript -Verarbeitung
    • Babel> verkettet> Minify
    • Browser -Cache für das <script> s brechen</script>
    • Räumen Sie nicht verwendete Dateien auf, die in der Verarbeitung erstellt wurden
  • SVG -Verarbeitung
    • Machen Sie ein SVG Sprite (einen Block von s
    • Nennen Sie es als Sprite.php-Datei (so kann sie in eine Vorlage php eingeleitet werden) und setzen Sie sie an einen spezifischen Ort ein
  • PHP -Verarbeitung
    • Aktualisieren Sie den AJAX-Aufruf im JavaScript auf Cache-Bust, wenn sich die Anzeigen ändern

Code Dump!

 const gulp = erfordern ("gulp"),
  browsersync = required ("browsersync"). create (),
  sass = erfordern ("Gulp-Sass"),
  postcss = required ("gulp-postcss"),
  autoprefixer = required ("autoprefixer"),
  cssnano = fordert ("cssnano"),
  del = erfordern ("del"),
  babel = erfordern ("Gulp-Babel"),
  minify = fordert ("gulp-minify"),
  concat = fordert ("Gulp-Concat"),
  umbenennen = require ("gulp-rename"),
  ersetzen = erfordern ("Gulp-Replace"),
  svgsymbols = erfordern ("gulp-svg-symbols"),
  svgmin = required ("gulp-svgmin");

const paths = {
  Stile: {
    src: ["./scss/*.scss", "./art- direction/*.scss"],
    Ziel: "./css/"
  },
  Skripte: {
    src: ["./js/*.js", "./js/libs/*.js", "! ./ JS/min/*. JS"],
    Ziel: "./js/min"
  },
  svg: {
    SRC: "./icons/*.svg"
  },
  Php: {
    SRC: ["./*.php", "./ads/*.php", "./art-direction/*.php", "./parts/**/*.php"]
  },
  Anzeigen: {
    SRC: "./ads/*.php"
  }
};

/ * Styles */
Funktionsdostylierungen (fertig) {
  return gulp.series (style, movemainstyle, deleteoldmainstyle, done => {
    CacheBust ("./ Header.php", "./");
    Erledigt();
  })(Erledigt);
}

Funktionsstil () {
  Gulp zurückgeben
    .src (paths.styles.src)
    .Pipe (Sass ())
    .on ("Fehler", sass.logerError)
    .pipe (postcss ([autoprefixer (), cssnano ()]))
    .pipe (gulp.dest (paths.styles.dest))
    .pipe (browsersync.stream ());
}

Funktion MovemainStyle () {
  return gulp.src ("./ CSS/style.css"). Pipe (gulp.dest ("./"));
}

Funktion DeleteoldMainstyle () {
  return del ("./ CSS/style.css");
}
/ * Endstile */

/ * Skripte */
Funktion Doscripts (Done) {
  Gulp.Series zurückgeben (
    PrecoessJs,
    Ecatjs,
    Minifyjs,
    deleteartifactjs,
    neu laden,
    fone => {
      CacheBust ("./ Teile/footer-scripts.php", "./parts/");
      Erledigt();
    }
  )(Erledigt);
}

Funktion precessjs () {
  Gulp zurückgeben
    .src (paths.scripts.src)
    .Rohr(
      Babel ({{
        Voreinstellungen: ["@babel/env"],
        Plugins: ["@Babel/Plugin-Proposal-Class-Properties"]
      })
    )
    .Pipe (gulp.dest ("./ JS/Babel/"));
}

Funktion concatjs () {
  Gulp zurückgeben
    .src ([
      "js/libs/jquery.lazy.js",
      "js/libs/jquery.fitvids.js",
      "js/libs/jQuery.Resizable.js",
      "js/libs/prism.js",
      "JS/Babel/Hervorhebung-fixes.js",
      "JS/Babel/Global.js"
    ]))
    .pipe (concat ("global-concat.js"))
    .pipe (gulp.dest ("./ JS/concat/"));
}

Funktion minifyjs () {
  Gulp zurückgeben
    .src (["./ JS/Babel/*. Js", "./js/concat/*.js"]))
    .Rohr(
      minify ({{
        ext: {
          src: ".js",
          min: ".min.js"
        }
      })
    )
    .pipe (gulp.dest (paths.scripts.dest));
}

Funktion Deleteartifactjs () {
  return del ([[
    "./js/babel",
    "./js/concat",
    "./js/min/*.js",
    "! ./ JS/min/*. min.js"
  ]);
}
/ * Endskripte *///

/ * Svg */
Funktion dosvg () {
  Gulp zurückgeben
    .src (paths.svg.src)
    .Pipe (svgmin ())
    .Rohr(
      svgsymbols ({{
        Vorlagen: ["Standard-SVG"],
        svgattrs: {
          Breite: 0,
          Höhe: 0,
          Anzeige: "Keine"
        }
      })
    )
    .pipe (umbenennen ("icons/Sprite/icons.php"))
    .Pipe (gulp.dest ("./"));
}
/ * Ende SVG *//

/ * Generische Dinge */
Funktion cacheBust (SRC, dest) {
  var cbstring = new Date (). GetTime ();
  Gulp zurückgeben
    .src (SRC)
    .Rohr(
      ersetzen ( /cache_bust = \ d /g, function () {
        return "cache_bust =" cbstring;
      })
    )
    .pipe (gulp.dest (dest));
}

Funktion Reload (Done) {
  browsersync.reload ();
  Erledigt();
}

Funktion watch () {
  browsersync.init ({{
    Proxy: "csstricks.local"
  });
  gulp.watch (paths.styles.src, dostyles);
  gulp.watch (paths.scripts.src, doscripts);
  gulp.watch (paths.svg.src, dosvg);
  gulp.watch (paths.php.src, reload);
  gulp.watch (paths.Ads.src, done => {
    CacheBust ("./ JS/global.js", "./js/");
    Erledigt();
  });
}

gulp.task ("Standard", Watch);

Probleme / Fragen

  • Der schlimmste Teil ist, dass es den Cache nicht sehr intelligent bricht. Wenn sich CSS ändert, wird der Cache auf allen Stylesheets unterbrochen, nicht nur die relevanten.
  • Ich würde wahrscheinlich nur SVG -Symbole mit PHP include () s in der Zukunft anstatt mit Spriting zu tun.
  • Der SVG -Prozessor bricht, wenn die ursprünglichen SVGs Breite und Höhenattribute haben, was falsch erscheint.
  • Wäre Schlupfveränderung ein Geschwindigkeitsschub? Wie in sehen Sie sich nur Dateien an, die sich anstelle aller Dateien geändert haben? Oder ist es nicht mehr notwendig?
  • Sollte ich Gulp auf gulpFile.js Änderungen neu starten?
  • Sicher wäre schön, wenn alle Libs, die ich verwendet habe, ES6-kompatibel wären, damit ich Sachen importieren könnte, anstatt manuell verkettet zu müssen.

Immer so viel mehr, was getan werden kann. Im Idealfall würde ich diese ganze Seite nur offen geöffnet, ich bin nur noch nicht dorthin gekommen.

Das obige ist der detaillierte Inhalt vonIch teile nur meine Schluckfile. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wöchentliche Plattformnachrichten: Web -Apps im Galaxy Store, Tappable Stories, CSS SubgridWöchentliche Plattformnachrichten: Web -Apps im Galaxy Store, Tappable Stories, CSS SubgridApr 14, 2025 am 11:20 AM

In der Roundup:#039; Firefox-Gewinne locker-ähnliche Kräfte, Samsungs Galaxy Store beginnt mit der Unterstützung von progressiven Web-Apps, CSS Subgrid ist in Firefox versandt

Wöchentliche Plattform News: Internet Explorer -Modus, Geschwindigkeitsbericht in der Suchkonsole, Einschränkungen der BenachrichtigungsaufforderungenWöchentliche Plattform News: Internet Explorer -Modus, Geschwindigkeitsbericht in der Suchkonsole, Einschränkungen der BenachrichtigungsaufforderungenApr 14, 2025 am 11:15 AM

In der Roundup: Internet Explorer in dieser Woche findet der Weg in Edge, Google Search Console einen neuen Geschwindigkeitsbericht, und Firefox gibt die Benachrichtigung von Facebook an

Die Kraft (und Spaß) des Umfangs mit CSS -benutzerdefinierten EigenschaftenDie Kraft (und Spaß) des Umfangs mit CSS -benutzerdefinierten EigenschaftenApr 14, 2025 am 11:11 AM

Sie sind wahrscheinlich schon zumindest ein wenig mit CSS -Variablen vertraut. Wenn nicht, finden Sie hier einen Überblick über zwei Sekunden: Sie werden wirklich benutzerdefinierte Eigenschaften genannt, Sie haben festgelegt

Wir sind ProgrammiererWir sind ProgrammiererApr 14, 2025 am 11:04 AM

Das Erstellen von Websites ist das Programmieren. Das Schreiben von HTML und CSS ist das Programmieren. Ich bin Programmierer, und wenn Sie hier CSS-Tricks lesen, sind Sie wahrscheinlich

Wie entfernen Sie ungenutzte CSS von einer Website?Wie entfernen Sie ungenutzte CSS von einer Website?Apr 14, 2025 am 10:59 AM

Hier ist das, was ich im Voraus wissen kann: Dies ist ein schwieriges Problem. Wenn Sie hier gelandet sind

Eine Einführung in die Bild-in-Bild-Web-APIEine Einführung in die Bild-in-Bild-Web-APIApr 14, 2025 am 10:57 AM

Das Bild-in-Bild trat mit der Veröffentlichung von MacOS Sierra im Jahr 2016 im Web im Websser auf. Es ermöglichte es einem Benutzer, ein Pop zu haben.

Möglichkeiten zur Organisation und Vorbereitung von Bildern für einen Unschärfeneffekt mit GatsbyMöglichkeiten zur Organisation und Vorbereitung von Bildern für einen Unschärfeneffekt mit GatsbyApr 14, 2025 am 10:56 AM

Gatsby macht großartige Arbeitsplätze, die Bilder verarbeiten und mit Bildern behandeln. Zum Beispiel hilft es Ihnen, Zeit mit Bildoptimierung zu sparen, da Sie nicht manuell manuell müssen

Oh hey, der Padding -Prozentsatz basiert auf der Breite des übergeordneten ElementsOh hey, der Padding -Prozentsatz basiert auf der Breite des übergeordneten ElementsApr 14, 2025 am 10:55 AM

Ich habe heute etwas über prozentuale (%) Polsterung gelernt, das ich in meinem Kopf völlig falsch hatte! Ich dachte immer, dass die prozentuale Polsterung auf dem basiert

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung