私のアプリケーションを
dist
フォルダにローカルに構築します。それが解凍され、サーバーにアップロードされモジュールがインストールされているにもかかわらず、Node.jsモジュールが見つかりませんdist
フォルダはその後、アップジップzip形式で圧縮されたdistのフォルダで実行されて
上package.jsonもコピーされnpm install --production
サーバー上でアプリケーションを実行しようとすると、
Error: cannot find module <module_name>
このエラーは、私は手動で私は私のdist
フォルダからそれを実行した場合
すべてが正常に動作します解凍後npm install <module_name>
を実行しない限り、任意のモジュールで発生し、それは後にnpm install --production
を実行する前ジップ部分
の問題ではありません解凍は(ちょうどすべてのモジュールであることを述べている最新)は何も解決しません
がサーバー上node_modules
を削除し、その後、npm install --production
は、すべてが正常に動作します実行している
zipファイルをローカルで解凍してからアプリケーションを実行すると、正常に動作します
何が間違っているのですか?
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"
}
}
を支援しようとすると、それはまた、それが探していたパスを言います。それが正しい 'node_modules'パスを探していることを確認してください。 –
エラーにパスがありません: '' 'Error:Function.Module._load(module.js:466:)で のFunction.Module._resolveFilename(module.js:536:15)に「express」の モジュールが見つかりません。 25) at Module.require(module.js:579:17) at require(internal/module.js:11:18)...等 '' ' (pathは試しているファイルの場所ですExpressをロードする) –
Hm、ok。 'node_modules'フォルダの中に' express'があるかどうか確認できますか?多分あなたはグローバルインストールを持っていて、それをインストールしたことを覚えていないかもしれません。 –