1

Frage: Nach der Wiederherstellung, in ASP NET Core project>Dependencies\npm\ wurden viele seltsame Pakete enthalten (wiederhergestellt). Pakete, die nicht meiner package.json Konfigurationsdatei entsprechen. Wie man es stoppt?Stop npm Wiederherstellen des gesamten Repository auf meinem ASP NET Core-Webprojekt


P.S. Ich habe gestern versucht, diese Frage zu stellen, aber wegen eines seltsamen Verhaltens von Stackoverflow ist es nicht erschienen. Nicht abstimmen oder schließen, ich habe vorher entfernt.


In einem Empty ASP.NET Core Web-Projekt, das ich mit angular2 als UI-Projekt verwenden soll ich package.json Datei mit den Abhängigkeiten und devDependencies Knoten hinzugefügt haben.

{ 
    "name": "myProject", 
    "version": "1.0.0", 
    "scripts": { 
    "start": "npm run tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ", 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "lite": "lite-server", 
    "typings": "typings", 
    "postinstall": "typings install" 
    }, 
    "license": "ISC", 
    "dependencies": { 
    "@angular/common": "2.0.0-rc.1", 
    "@angular/compiler": "2.0.0-rc.1", 
    "@angular/core": "2.0.0-rc.1", 
    "@angular/http": "2.0.0-rc.1", 
    "@angular/platform-browser": "2.0.0-rc.1", 
    "@angular/platform-browser-dynamic": "2.0.0-rc.1", 
    "@angular/platform-server": "2.0.0-rc.1", 
    "@angular/router": "2.0.0-rc.1", 
    "@angular/router-deprecated": "2.0.0-rc.1", 
    "@angular/upgrade": "2.0.0-rc.1", 
    "es6-shim": "^0.35.1", 
    "reflect-metadata": "0.1.3", 
    "rxjs": "5.0.0-beta.6", 
    "systemjs": "^0.19.27", 
    "zone.js": "^0.6.12", 
    "bootstrap": "3.3.6", 
    "jquery": "2.2.3", 
    "font-awesome": "4.6.1", 
    "toastr": "2.1.2", 
    "chart.js": "2.1.3", 
    "signature_pad": "^1.5.3", 
    "moment": "2.13.0", 
    "fullcalendar": "2.7.1", 
    "fullcalendar-scheduler": "1.3.1" 
    }, 
    "devDependencies": { 
    "concurrently": "^2.0.0", 
    "lite-server": "^2.2.0", 
    "typescript": "^1.8.10", 
    "typings": "^0.8.1", 
    "bootstrap": "3.3.6", 
    "font-awesome": "4.6.1", 
    "toastr": "2.1.2", 
    "signature_pad": "^1.5.3" 
    } 
} 

sofort die Dependencies Ordner, von Projektstruktur darüber informiert, dass ich npm Pakete wiederherstellen müssen. Ich öffnete npm Ordner, sah ich dort meine Referenzen aus package.json und ich drückte [Wiederherstellen]

restoring Dependencies

Am Ende des in npm Ordner wiederherstellen, unter Dependencies und ich sah viele Referenzen wurde automatisch hinzugefügt.
node_modules Ordner enthält 361 Pakete statt meiner: 28 Pakete definiert in package.json.

Ich weiß nicht, warum sie enthalten waren. Weiß jemand, warum das passiert ist? Wie man diese Redundanz vermeidet ...

Ich sehe, dass es möglich ist, Pakete nacheinander zu deinstallieren .... Sollte ich sie aus diesem Ordner npm deinstallieren?

strange packages included

Dank.

+0

Welche Version von ASP.NET Core Tools für VS haben Sie installiert? Haben Sie npm/Node.js auf dem Computer installiert, und wenn ja, welche Version? –

+0

Visual Studio 2015 Update 2; npm 3.8.8; Knoten 6.1.0; ASP.NET und Web Tools 2015.1; Microsoft .NET Core Tools (Vorschau 1) 14.1.20512.0 – meorfi

Antwort

2

Kurze Antwort: Sie sollten die zusätzlichen Pakete nicht löschen oder deinstallieren. Sie sind Abhängigkeiten der Pakete, die in Ihrem package.json aufgeführt sind.

Neuere Versionen von npm haben die Art der Installation von Paketabhängigkeiten geändert. Ältere Versionen würden immer die Abhängigkeiten eines Pakets unter dem Paketordner und die Abhängigkeiten jedes dieser Pakete unter ihren Ordnern usw. installieren. Das war gut für die Abhängigkeitsisolation, aber es führte zu tief verschachtelten Ordnerstrukturen, die unter Windows Probleme verursachten, da sie MAX_PATH überschreiten würden. Neuere Versionen von npm installieren gemeinsam nutzbare Kindabhängigkeiten im Stammordner. Sie sehen ungefähr die gleichen Pakete wie zuvor, nur in einer flacheren Ordnerstruktur.

Jetzt, vor der letzten Version von ASP.NET Core RC2, zeigte Web Tools for VS diese neue Struktur nicht sehr gut. Alle diese abgeflachten Pakete würden als "irrelevante" Root-Pakete angezeigt.Wenn Sie die Web Tools auf die RC2-Version aktualisieren können, sollten Sie sehen, was Sie unter dem npm-Knoten erwarten: Nur die Pakete in Ihrer package.json, mit den anderen Paketen darunter geschachtelt.

+0

Ja Joe, ich finde heraus, dass sie Abhängigkeiten von meinen bestehenden Paketen sind, die in package.json aufgelistet sind. Viele von ihnen sind die Abhängigkeiten für "gleichzeitig" und für "lite-server" :). Ich habe gespielt, indem ich sie deinstalliert habe, aber der 'npm start' Befehl ** ist abgestürzt ** :) Also habe ich sie wiederhergestellt. Danke für Erklärungen! Gut gemacht! – meorfi