Ich erstelle meine Anwendung lokal in einem Ordner
dist
; package.json wird auch kopiertNode.js kann das Modul nicht finden, obwohl das Modul installiert istnpm install --production
im dist-Ordner ausgeführt wirddist
Ordner dann auf gezipptZip auf Server hochgeladen, wo es dekomprimiert wird
Wenn Sie versuchen, die Anwendung auf dem Server auszuführen, erhalten Sie
Error: cannot find module <module_name>
Dieser Fehler tritt für jedes Modul, wenn ich npm install <module_name>
nach dem unzip
Alles funktioniert gut, wenn ich es von meinem dist
Ordner ausführen manuell ausführen, so dass es nicht ein Problem mit dem Pre-zip Teil
Laufe npm install --production
nach hat die unzip nichts lösen (nur sagt, dass alle Module sind up-to-date)
node_modules
auf dem Server löschen, dann läuft npm install --production
macht fein alles funktionieren
Die Zip-Datei lokal entpacken, dann läuft die Anwendung einwandfrei
Was vermisse ich/mache ich falsch?
EDIT: package.json:
{
"name": "app-name",
"version": "0.0.1",
"scripts": {
"start": "index.js"
},
"dependencies": {
"body-parser": "^1.18.2",
"email-validator": "^1.1.1",
"express": "^4.16.2",
"express-jwt": "^5.3.0",
"express-jwt-permissions": "^1.0.0",
"firebase-admin": "^5.5.1",
"jsonwebtoken": "^8.1.0",
"mailgun-js": "^0.13.1",
"mysql2": "^1.5.0",
"password-hash-and-salt": "^0.1.4",
"randomstring": "^1.1.5",
"reflect-metadata": "^0.1.10",
"sequelize": "^4.22.6",
"sequelize-typescript": "^0.5.0"
},
"devDependencies": {
"@types/express": "^4.0.39",
"@types/express-jwt": "0.0.38",
"@types/jsonwebtoken": "^7.2.4",
"@types/node": "^8.0.51",
"@types/sequelize": "^4.0.79",
"babel-core": "^6.26.0",
"del": "^3.0.0",
"gulp": "^3.9.1",
"gulp-babel": "^7.0.0",
"gulp-ssh": "^0.6.0",
"gulp-typescript": "^3.2.3",
"gulp-zip": "^4.0.0",
"merge-stream": "^1.0.1",
"typescript": "^2.6.1"
}
}
versucht zu helfen, wenn er sagt, dass das Modul nicht finden kann, sagt es auch der Weg, wo er war auf der Suche. Überprüfen Sie, ob nach dem richtigen 'node_modules'-Pfad gesucht wird. –
Es gibt keinen Weg in dem Fehler: '' 'Fehler: nicht Modul finden 'express' bei Function.Module._resolveFilename (module.js: 536: 15) bei Function.Module._load (module.js: 466: 25) bei Module.require (module.js: 579: 17) bei require (internal/module.js: 11: 18) ... etc''' (nur Pfad ist der Speicherort der Datei, die versucht Express) –
Hm, ok. Können Sie überprüfen, ob Sie 'express' im' node_modules'-Ordner haben? Vielleicht haben Sie eine globale Installation und erinnern sich nicht, dass Sie es so installiert haben. –