2015-02-15 6 views
6

Ich habe an einem eckigen Projekt gearbeitet und wann immer ich ein neues Paket wollte, habe ich bower.json manuell bearbeitet und das Paket devdependencies hinzugefügt und dann bower install ausgeführt, um die Abhängigkeit zu installieren.Was ist der beste Weg, um Pakete von devdependencies in Abhängigkeiten in bower.json zu verschieben?

Ich habe nie wirklich den Namen des Abschnitts angeschaut, in den ich ihn eingefügt habe, aber kürzlich lief ich bower install <somepackage> -S und es wurde ein neuer Abschnitt namens dependencies erstellt. Oh!!! Sie sollen dorthin gehen.

Ich habe nachgeschlagen und anscheinend devdependencies ist für Entwicklungsabhängigkeiten, und kann während eines Produktions-Builds ausgeschlossen werden und ist in erster Linie für Pakete, die Tests etc. unterstützt. Allerdings ist dependencies in beiden Entwickler-und Produktions-Builds enthalten und ist für Pakete, die in der endgültigen Produktion gebaut werden.

So jetzt habe ich viele "Produktion" Pakete unter devdependencies. Was ist der beste Weg, um sie zu dependencies zu bewegen, ohne etwas zu brechen?

+3

Ausschneiden und Einfügen von einem Abschnitt zum anderen? –

+0

@JBNizet Gibt es irgendwelche Probleme damit? Ich benutze eckigen Boilerplate. Die Anweisungen sagen ausdrücklich die Installation mit 'bower install --save-dev' – richard

Antwort

0

Dependenzen in Bower werden in Ihrem Ordner bower_components installiert, unabhängig davon, ob Sie sie als Dev-Abhängigkeiten markieren oder nicht. Bower füllt immer den Ordner bower_components mit dem, was in dependancies aufgeführt ist, und abhängig von Ihren Anweisungen möglicherweise, was in devDependancies aufgeführt ist. Wenn Sie in Ihrem Fall wissen, welche Pakete nur für die Entwicklung benötigt werden, können Sie sie einfach in das richtige Objekt verschieben. Wenn die Dinge für Sie jetzt mit Ihren Abhängigkeiten in devDependancies arbeiten, wird nichts brechen, wenn Sie sie auf dependancies verschieben.

Zum Beispiel

{ 
    ... 
    "dependencies": { 
    "angular": "1.5.11", 
    "angular-resource": "1.5.11", 
    "angular-sanitize": "1.5.11", 
    "babel-core": "^6.26.0", 
    "babel-preset-es2015": "^6.24.1", 
    "gulp": "^3.9.1" 
    } 
} 

würden

{ 
    ... 
    "devDependencies" { 
    "babel-core": "^6.26.0", 
    "babel-preset-es2015": "^6.24.1", 
    "gulp": "^3.9.1" 
    }, 
    "dependencies": { 
    "angular": "1.5.11", 
    "angular-resource": "1.5.11", 
    "angular-sanitize": "1.5.11" 
    } 
} 

Als Randbemerkung, sollten Sie Ihr Projekt Yarn gemäß der Empfehlung von Bower selbst betrachten zu migrieren. Informationen dazu finden Sie unter here.