Die Dateien package.json sind nach einiger Zeit beschädigt

9

Ich benutze einen Firmencomputer mit Windows 10. Ich habe nodejs v6.10.0 und npm v3.10.10. Es ist das erste Mal, dass ich nodejs / npm auf diesem Computer installiere.

Wenn ich ein Modul installiere (irgendeine Art von Modulen, zum Beispiel npm install jsdoc ), dann funktioniert alles gut. Ich kann mein example.js mehrmals aufrufen, und alles ist OK.

Aber nach einer Weile (zufällige Periode) kann ich mein Programm nicht mehr ausführen, weil ich den folgenden Fehler erhalte:

%Vor%

Wenn ich den Inhalt von package.json mit SublimeText überprüfe, bekomme ich:

%Vor%

Und tatsächlich sind alle package.json Dateien unter node_modules für dieses Projekt beschädigt. Für alle Module!

Wenn ich jedoch einen package.json in meinem Projektordner habe, wird dies nicht beeinflusst, nur die unter node_modules Ordner sind ....

Um das Problem zu beheben, muss ich node_modules löschen und meine Module mit npm install neu installieren. Nicht wirklich praktisch. Danach sind meine package.json -Dateien wieder korrekt mit dem erwarteten Inhalt.

Ich dachte, es könnte mit unserem McAfee-Anti-Virus zu tun haben, aber warum wirkt es sich nur auf die package.json -Dateien unter node_modules aus und nicht auf die in anderen Ordnern?

Ich habe irgendwo gelesen, dass ein Unternehmens-Proxy eine package.json mit der falschen Kodierung herunterladen könnte, aber wenn ich meine Module installiere, sind die package.json völlig normal.

Wenn jemand eine Idee / Führung hat, werde ich es schätzen!

BEARBEITEN : Die Korruption ist seit dem letzten Release von npm (5.x) nicht mehr aufgetreten ... Ich weiß nicht, ob es damit zusammenhängt oder ob ein Windows-Update installiert wurde oder meine I / T-Abteilung ein Software-Update veröffentlicht hat ...

    
AymKdn 14.03.2017, 16:39
quelle

3 Antworten

0

Wenn ich das wäre, würde ich zu diesem Zeitpunkt den SysInternals Process Monitor : Nehmen Sie nichts speziell an und überwachen und protokollieren Sie alle E / A auf Ihrem System, bis sich die betreffenden Dateien ändern. Sie können Process Monitor so einrichten, dass Datenträgeraktionen aufgezeichnet werden, und dann die Protokolle filtern, bis Sie sehen, welcher Prozess tatsächlich irgendetwas mit .json im Namen ändert. Es wird wahrscheinlich eine Menge Protokolle geben, und Sie werden vielleicht eine Weile damit verbringen müssen, sie zu durchforsten, aber es sollte Ihnen wenigstens etwas geben, um wenigstens die Frage zu beantworten: "Welches Programm ändert diese Dateien?" anstatt raten zu müssen.

Noch ein Gedanke: Wenn sich die Dateien ändern und Process Monitor überhaupt nichts anzeigt, haben Sie möglicherweise einen Datenträger, der schlecht läuft. Überlegen Sie, ob Sie Ihre Arbeit für eine Weile auf einem USB-Laufwerk erledigen und ob die gleichen Ergebnisse auftreten. Wenn die Dateien auf dem Laufwerk C: , aber nicht auf dem Laufwerk F: (oder was auch immer) beschädigt werden, kann dies darauf hindeuten, dass der Start Ihres Laufwerks fehlschlägt. Besonders mit SSDs können Festplatten seltsame Dinge tun, wenn sie anfangen zu sterben.

Das Nachverfolgen dieser Art von zufälligen Dateiänderungen kann schwierig sein, aber es gibt Möglichkeiten, die Ursache zu identifizieren. Gib die Hoffnung nicht auf und du wirst es finden. Viel Glück!

    
Sean Werkema 09.06.2017, 12:56
quelle
1

Ich habe keine spezifische Lösung, um es zu versuchen, aber es gibt ein paar allgemeine, die Sie dorthin bringen können:

  1. Deinstallieren / Neuinstallation von node & amp; npm - Offensichtlich, das erste, was Sie immer versuchen, wenn möglich.

  2. Schalten Sie alle nicht benötigten Dienste / Hintergrund-Apps (insbesondere Scanner) aus und prüfen Sie, ob das Problem nicht mehr auftritt. Wenn dies der Fall ist, schränken Sie Ihren Umfang ein und schalten Sie die Dienste beim Testen nacheinander ein. Vielleicht mache ein Skript, um deine App so oft zu starten, dass es normalerweise den Fehler erzeugt.

  3. Wird ein On-Save-Build-Tool ausgeführt? Schluck / Grunzen? Dies könnte auch der Schuldige sein.

Ich schätze, wenn Sie die ersten zwei Vorschläge versuchen, werden Sie Ihr Problem finden.

Auch das schreibgeschützte Element, das Sie erwähnen, ist seltsam, aber sind Sie sicher, dass die richtigen Richtlinien vorhanden sind, mit denen Sie diese Berechtigungen festlegen können? Windows ist manchmal verwirrend, da Sie die Berechtigungen ändern können und manchmal sieht es wirklich so aus, als wären die Dinge in Ordnung, aber sie haben es nicht und Sie bemerken es erst, wenn die Dinge immer noch nicht funktionieren und Sie die Berechtigungen erneut prüfen / p>     

Levi Mootz 09.06.2017 10:17
quelle
0

Das ist sehr seltsam. Der einzige Grund, der nicht mit Malware zu tun hat, könnte ein Problem mit der Codierung sein. Die einzigen gültigen Kodierungen für JSON sind UTF-8, UTF-16 und UTF-32 (sowohl Little als auch Big Endian), aber die sicherste Kodierung für package.json ist definitiv UTF-8 (ohne BOM).

Stellen Sie sicher, dass Sie es nie in einem Editor öffnen und speichern Sie es in etwas anderem als UTF-8.

Der einzige andere Grund für diese Korruption könnte tatsächlich Malware sein.

Siehe diese Antworten für weitere Informationen zu JSON und Zeichencodierung:

Wenn nach dem Download alles in Ordnung ist, wäre eine mögliche Abhilfe, jede package.json -Datei nach der erfolgreichen Installation schreibgeschützt zu machen und zu sehen, wenn Sie einen Fehler sehen, dass etwas sie nicht schreiben kann.

Eine andere Sache, die ich mir ansehen würde, ist, ob es in jedem Verzeichnis oder nur in einigen Verzeichnissen passiert, die Sie freigeben oder synchronisieren oder die sich auf im Netzwerk montierten Geräten befinden.

    
rsp 14.03.2017 16:47
quelle

Tags und Links