Was ist der empfohlene Weg, um in der Produktion verkleinerte Versionen anzufordern, aber bei der Verwendung von browserify in der Entwicklung zu debuggen?

8

Ich habe gerade begonnen, browserify zu betrachten, und frage mich, was ist die empfohlene Methode, um die Mindestversionen von Abhängigkeiten beim Erstellen für die Produktion und die Debug-Funktionen beim Entwickeln anzufordern?

Zum Beispiel habe ich das Tutorial hier - Ссылка gefolgt und bin mit den folgenden Dateien gelandet:

js \ main.js

%Vor%

js \ names.js

%Vor%

js \ findsuperman.js

%Vor%

index.html

%Vor%

package.json

%Vor%

gruntFile.js

%Vor%

Running npm run grunt erstellt js / findem.js, das die Debug-Version des Unterstrich-Pakets enthält (und auch den Watcher startet).

Aber ich hätte auch gerne js / findem-min.js - die Min-Version, die für die Produktion gedacht ist und die Min-Version des Unterstrich-Pakets enthalten sollte.

Und hier sind ein paar Dinge, die ich verstehen muss. Tatsächlich:

  1. require('underscore') entspricht der Debug-Version. Es scheint nicht require('underscore-min') zu sein. Scheint so, als müsste man auf require('underscore/underscore-min.js') zurückgreifen. Habe ich Recht?
  2. Wie kann man verschiedene Dinge bedingt abhängig vom Produktions- oder Entwicklungsaufbau verlangen, aber nur beim Browsern? Die endgültige js-Datei (js \ findem.js oder js \ findem-min.js) sollte natürlich unbedingt das Richtige verlangen.
  3. Soll ich auch index-min.html haben? Scheint nicht richtig. Also sollte ich eine index.html haben, die entweder js \ findem.js oder js \ findem-min.js lädt? Da ich nicht beide gleichzeitig haben kann, muss ich index.html als dynamischen Inhalt und nicht als statische Datei bereitstellen. So etwas wie eine Jade-Vorlage mit dem Namen der js-Datei, die entweder js \ findem.js oder js \ findem-min.js ist, abhängig von den Startparametern (NODE_ENV = Entwicklung kommt mir in den Sinn). Habe ich Recht?

Ich würde gerne wissen, ob ich die Punkte 1 und 3 richtig verstehe, aber ich habe keine Antwort für Punkt 2. Was ist der empfohlene Weg (die beste Übung, wenn Sie bitte), es zu tun? Ich hätte auch die Punkte 1 und 3 falsch bekommen können, also korrigiert mich bitte, wenn ich mich dort irre.

    
mark 11.04.2016, 04:28
quelle

1 Antwort

1

Ich habe seit Jahren kein browserify verwendet. Die meisten Leute benutzen jetzt Webpack. Das heißt, die von grunt an Browserify übergebenen Parameter steuern die Ausgabe. Ein "run" -Befehl wird normalerweise dem debug zugeordnet. Es wird einen separaten Befehl zum Erstellen von Produktionsdateien geben.

Für # 1 wollen Sie immer nur require schreiben ('Unterstrich'). Es ist Sache des Modul-Bundlers (browserify / webpack / etc), das neu zu schreiben / zu handhaben. Fügen Sie .js in Ihre Anforderungen ein, wenn Sie auf eine bestimmte Datei verweisen. Fügen Sie sie nicht ein, wenn Sie auf ein Modul außerhalb Ihres Projekts verweisen, z. B. Unterstriche.

Für # 2 hat Browserify ziemlich schlechte Dokumentation. Da Webpack hier im Wesentlichen genauso funktioniert, kann das Lesen der zugehörigen Dokumentation hilfreich sein, um dies herauszufinden. Ссылка

Für # 3 ist das korrekt. Der HTML-Code muss auf unterschiedliche .js-Dateien verweisen, abhängig davon, ob Sie sich in prod / debug befinden. Sie können es mit zwei Dateien fest codieren, wenn Sie eine statische Ausgabe wünschen. In den meisten Fällen wählen Sie jedoch normalerweise eine env-Variable. In anderen Fällen können ältere .js-Dateien für alte Browser usw. verwendet werden.

Viel Glück (und wechseln Sie zum Webpack:)

    
James 03.10.2017 02:06
quelle

Tags und Links