2017-04-22 3 views
5

Ich sollte klarstellen, dass ich nicht so erfahren mit Front-End-Tools bin, so tut mir leid im Voraus, wenn ich etwas offensichtliches und dummes frage.Kann Garn als Ersatz für Bower und Npm angesehen werden?

Bisher habe ich für die Schrift Ende und npm für Server-Seite unter Verwendung von Bower, obwohl jeder der genannten Tools hat seine Vorteile und damit meine ich flach Abhängigkeitsmanagement von Bower (Last vom Client reduziert) und verschachtelte Abhängigkeitsverwaltung von npm (hilft viel bei der Versionierung), es ist ziemlich umständlich geworden, so viele Werkzeuge (webpack, browserify, etc.) zu verwenden. Ich habe diese Werkzeuge vielleicht falsch benutzt und könnte beide mit einer Option benutzt haben (mir nicht bekannt) und habe nur an der Oberfläche gekratzt, ich habe diese answer als meine Faustregel genommen und mache es also seit ich es gelesen habe. Es wäre schön, wenn ich wenigstens diese zwei auf eins reduzieren könnte.

In letzter Zeit bin ich neugierig geworden auf Garn und mit all dem Hype um es scheint es, als ob es einen guten Job gemacht hat und als würde es npm komplett ersetzen. Als ich die Dokumente gelesen habe, habe ich die Option --flat entdeckt, und das hat mich dazu gebracht, mich zu fragen, ob es möglich wäre, es auch als Bower-Ersatz zu verwenden? Wenn ja, kann ich entweder einen flachen oder geschachtelten Abhängigkeitsmanager haben (indem ich einfach mehrere json-Dateien für Server und Frontend habe)?

Ich würde wirklich schätzen, wenn jemand mir in die richtige Richtung zeigen könnte!

+2

Bemerkenswert, dass seit v3, [npm * versucht * Abhängigkeiten in einer flacheren Weise aufzulösen] (https://docs.npmjs.com/how-npm-works/npm3) (siehe auch [Was ist der Unterschied zwischen npm 3 vs Bower?] (http://stackoverflow.com/questions/32087425/what-is-the-difference-between-npm-3-vs-bower)) – Aurora0001

+0

@ Aurora0001 bedeutet es Bower hat keine Verwendung mehr (oder zumindest ersetzt durch Garn/Npm für die meisten Aufgaben)? Danke für die Links übrigens! – orustammanapov

Antwort

7

Es hängt von Ihrem genauen Anwendungsfall ab, aber ... wahrscheinlich.

Derzeit scheint der Haupttrend gegenüber Modulbündlern wie Webpack und Browserify (und daher entweder npm oder Yarn) und außerhalb von Bower zu liegen. Sie können einen ausgezeichneten Überblick über die Situation bei NPM vs. Bower vs. Browserify vs. Gulp vs. Grunt vs. Webpack, zusammen mit einigen Gründen, warum Sie möchten Webpack statt Bower lesen.

Momentan verwenden Sie wahrscheinlich HTTP, wo es schneller ist, eine JavaScript-Bundle-Datei als viele Quelldateien zu haben (wie bei Bower). Deshalb sind Webpack und Browserify so beliebt (neben anderen Gründen) - sie sollten Leistung erhöhen und die Entwicklung viel vereinfachen.

Seitennotiz:HTTP/2 wird den Wert der Modulbündelung verringern, weil mehrere Anfragen weit weniger kostspielig werden. Eine ausführlichere Beschreibung der Probleme mit HTTP/2 finden Sie unter What is the value of using Webpack with HTTP/2.

Wenn Sie npm oder Yarn verwenden, sollte es nicht wichtig sein, ob die Abhängigkeiten verschachtelt sind - Ihre Frontend-Abhängigkeiten werden sowieso alle mit Webpack/Browserify gebündelt Speicherplatz und mehr Download-Zeit.

Da npm v3 und Yarn flache Installationen ausführen können, sollte es sowieso keine Probleme geben. Kurz gesagt: Sie können es wahrscheinlich tun, und viele andere Leute tun genau das.

+1

danke, die bereitgestellten Links waren auch sehr hilfreich! – orustammanapov

2

In den letzten Tagen gibt es einen Aufwärtstrend in der Popularität von Yarn und es ist hauptsächlich auf einige Dinge anders als Npm.

Eines, es ist 100% deterministisch, d. H., Wenn Sie Garn aus einem beliebigen Zustand, zu jeder Zeit, 1000x Mal, wird es immer noch die gleiche Weise arbeiten. Die Installation von npm ist nicht deterministisch.Wenn Sie es aus verschiedenen Zuständen ausführen, wird es verschiedene Wege installieren.

Garn kann auch besser zwischenspeichern. In der Tat ist es so gut, dass Sie eine deutliche Reduzierung Ihrer Installationszeiten sehen. Sie können die Installationszeit für große Anwendungen um das Zehnfache reduzieren.

Yarn sperrt auch Ihre Abhängigkeiten standardmäßig. Es ist möglich, dies mit einem Befehl npm shrinkwrap zu tun, aber wenn Sie jemals einen von diesen beibehalten mussten, kann es chaotisch sein.

+0

danke, mir war nicht bewusst, dass NPM-Installationen nichtdeterministisch sind. – orustammanapov

Verwandte Themen