Thema: nodejs
-
ES-Module versus CommonJS in Node.js
CommonJS verwendet synchrones require und module.exports; ES-Module verwenden statisches import/export, Top-Level-await und import.meta. Node entscheidet pro Datei anhand der Dateiendung und des type-Felds der nächstgelegenen package.json; ES-Module brauchen vollständige Dateiendungen und kennen __dirname und require nicht, wofür es dokumentierte Ersatzlösungen gibt.
-
npm: „ERESOLVE unable to resolve dependency tree“ und Konflikte bei Peer Dependencies
Seit npm 7 werden peerDependencies automatisch installiert. Lassen sich nicht alle Peer-Bereiche gleichzeitig erfüllen, bricht die Installation mit „npm error code ERESOLVE“ ab (vor npm 10.6: „npm ERR! code ERESOLVE“). Der Artikel zeigt, wie sich anhand der Found-/Could-not-resolve-Zeilen von npm die konfliktverursachenden Pakete genau bestimmen lassen und warum --legacy-peer-deps oder --force nicht zur Standardreaktion werden sollten.
-
«ENOSPC: System limit for number of file watchers reached» und die inotify-Limits
Dateiüberwacher auf Basis der Linux-inotify-API scheitern mit «ENOSPC: System limit for number of file watchers reached», sobald ein Kernel-Limit pro Benutzer erschöpft ist, meist durch die Überwachung von node_modules oder ähnlich grossen Verzeichnisbäumen. Der Artikel behandelt die beiden relevanten sysctl-Werte, ihre dauerhafte Erhöhung und den Grund, warum Container in der Regel das Limit des Hosts teilen.
-
Warum Anwendungen den Trust Store des Betriebssystems ignorieren: Java cacerts, Python certifi, Node.js und curl
Eine CA im Trust Store des Betriebssystems hinzuzufügen, heisst nicht, dass jede Anwendung ihr vertraut. Java, viele Python-Installationen, Node.js und curl-Builds können ein eigenes CA-Bundle oder einen eigenen Keystore mitbringen, jeweils mit eigenem Speicherort und eigener Umgebungsvariable zum Überschreiben. Ein Zertifikatsfehler kann deshalb nach der Korrektur auf OS-Ebene bestehen bleiben.
Maschinenlesbar: JSON