2016-09-20 3 views
0

Wenn ich eine NPM-Installation meiner package.json durchführen, wählt NPM immer automatisch die neuere Version bestimmter Pakete.Machen Sie NPM spezifische Versionen installieren package.json

Es tut so, obwohl ich bestimmte Versionen dieser Pakete formuliert habe. Wie zwinge ich NPM, nur bestimmte Versionen zu nehmen?

Mein dependencies.json:

"dependencies": { 
"@angular/common": "2.0.0-rc.5", 
"@angular/compiler": "2.0.0-rc.5", 
"@angular/core": "2.0.0-rc.5", 
"@angular/forms": "2.0.0-rc.5", 
"@angular/http": "2.0.0-rc.5", 
"@angular/platform-browser": "2.0.0-rc.5", 
"@angular/platform-browser-dynamic": "2.0.0-rc.5", 
"@angular/router": "3.0.0-rc.1", 
"@angular/upgrade": "2.0.0-rc.5", 
"angular2-meteor": "0.7.0-beta.1", 

"angular2-material/core": "2.0.0-alpha.7-9", 
"angular2-material/grid-list": "2.0.0-alpha.7-9", 
"angular2-material/card": "2.0.0-alpha.7-9", 
"angular2-material/button": "2.0.0-alpha.7-9", 
"angular2-material/icon": "2.0.0-alpha.7-9", 
"angular2-material/checkbox": "2.0.0-alpha.7-9", 
"angular2-material/sidenav": "2.0.0-alpha.7-9", 
"angular2-material/menu": "2.0.0-alpha.7-9", 
"angular2-material/input": "2.0.0-alpha.7-9", 
"angular2-material/toolbar": "2.0.0-alpha.7-9", 
"angular2-material/slider": "2.0.0-alpha.7-9", 

"angular2-meteor-polyfills": "0.1.1", 
"bcrypt": "0.8.7", 
"client": "0.0.1", 
"hammerjs": "^2.0.8", 
"meteor-node-stubs": "~0.2.0", 
"reflect-metadata": "0.1.8", 
"rxjs": "5.0.0-beta.11", 
"tether": "1.3.6", 
"zone.js": "0.6.17" 
} 

Wenn ich führen eine NPM-install (nach dem node_modules-Ordner zu entfernen), NPM neueren Versionen von angular2 installiert und Winkel Material, obwohl ich die spezifischen Drucker brauchen.

Ergebnis nach der Installation:

Antwort

0

NPM hat keine Auflösungsoption, wie Bower, wo Sie NPM nur zwingen kann, auf bestimmte Versionen von Paketen zu nehmen. Wenn Sie npm installieren wird es nicht nur die Pakete in der package.json-Datei überprüfen und installieren, sondern auch die Abhängigkeiten für alle diese Pakete. Wenn ein Paket eine neuere Version von angular2 erfordert als die in package.json angegebene, wird die neuere Version installiert.

Seien Sie auch vorsichtig, wenn Versionen in package.json mit^definiert sind, zum Beispiel "babel-core": "^ 6.17.0". Sie können eine perfekt funktionierende Umgebung haben, aber eines Tages, wenn Sie die Node-Module aus irgendeinem Grund neu installieren oder aktualisieren, kann eine neuere Version eines Pakets eine neuere Version von angular2 erfordern, und Sie könnten das gleiche Problem haben.

Als Schlussfolgerung für diesen Fall, überprüfen Sie, welches Paket/s in der package.json Datei benötigt, als eine Abhängigkeit, eine neuere Version von angular2 und angular-Material als die angegebenen.

Verwandte Themen