2015-07-23 6 views
24

Die meisten Pakete sind heutzutage sowohl in NPM als auch in Bower erhältlich. Ich muss NPM haben, aber ich möchte Bower aus der Schleife meines Projekts herausschneiden.Gibt es einen Injektor wie grunt-wiredep, der für NPM-Abhängigkeiten funktioniert?

Ich verlasse mich derzeit auf grunt-wiredep zu erstellen <script> enthält in meinem index.html. Dieses Tool betrachtet alle Bower-Konfigurationen, um alle notwendigen js und CSS-Dateien in meine index.html für mich zu ziehen.

Gibt es ein Tool, das dasselbe für NPM-Abhängigkeiten tut?

Antwort

15

Sie könnten dies mit einem Modul Bundler wie Browserify oder Webpack tun.

Für mit Browserify Sie beginnen, müssen Sie es zunächst global in Ihrem Projekt,

npm install -g browserify 

Dann Bibliothek Sie das Frontend erhalten möchten zum Beispiel die Winkel Bibliothek

enthalten, wie über NPM installieren
npm install --save angular 

Jetzt müssen Sie require() verwenden, um Browserify über die Abhängigkeiten zu informieren, die es für das Projekt benötigt (Im Fall der Angular-App, wo Sie das Hauptmodul definieren, fügen Sie diese erste Zeile hinzu)

var angular = require('angular'); 

angular 
    .module('autocompleteDemo', []) 
    .controller('DemoCtrl', DemoCtrl); 

Für die Grunzen-browserify-Aufgabe, installieren Sie es zuerst in das Projekt

npm install grunt-browserify --save-dev 

und die Aufgabe konfigurieren

browserify: { 
    main: { 
     src: 'entry.js', 
     dest: 'bundle.js' 
    } 
} 

schließlich in Ihrer index.html folgt, Sie muss Markup für das Bündel.js Skript

<script src="bundle.js"></script> 
hinzufügen 10

Beispielcode finden Sie unter https://github.com/pra85/grunt-browserify-example

+4

Und die automatische Injektion für CSS? –

+1

Das kann getan werden, indem man ein broswerify-Plugin namens [parakeify] (https://github.com/rotundasoftware/parcelify/) verwendet, es funktioniert, wenn Sie es direkt über die Befehlszeile ausführen, aber mit Grunt konnte ich nicht machen es funktioniert, ich habe ein Problem dort eröffnet (https://github.com/rotundasoftware/parcelify/issues/39), in der Hoffnung, jemand würde beraten, wie es erfolgreich zu integrieren –

+2

Dies ist nicht, was das OP gefragt und will führen viele zu einer komplexeren Lösung, als sie unbedingt benötigt wird. –

Verwandte Themen