2017-12-13 2 views
1
  • Ich erstelle meine Anwendung lokal in einem Ordner dist; package.json wird auch kopiertNode.js kann das Modul nicht finden, obwohl das Modul installiert ist

  • npm install --production im dist-Ordner ausgeführt wird

  • dist Ordner dann auf gezippt

  • Zip 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" 
    } 
} 
+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. –

+0

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) –

+0

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. –

Antwort

0

Verwenden npm installieren --only Produktion = statt. Per dieser article

hoffe, das hilft, ich bin Neuling auf Knoten js, nur

Verwandte Themen