當我在Azure上部署NodeJS應用程序時,一個是Node包被破壞。我得到的錯誤是:關於Azure包問題的NodeJS部署
Error: %1 is not a valid Win32 application.
\\?\D:\home\site\wwwroot\node_modules\bcrypt\lib\binding\bcrypt_lib.node
at Error (native)
at Object.Module._extensions..node (module.js:597:18)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (D:\home\site\wwwroot\node_modules\bcrypt\bcrypt.js:6:16)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (D:\home\site\wwwroot\models\user.model.js:3:14)
當我下載我部署的文件時,它甚至不能在本地工作了。我必須再次在本地重新安裝bcrypt軟件包才能正常工作。
有沒有人知道爲什麼會發生這種情況?
更新: 我找到了解決這個問題的方法。如果我在我的服務器上手動輸入「npm install bcrypt」,它可以工作...。 Offcourse每次部署後我都無法做到這一點......。
更新: 我檢查了修復之前和修復後的bcrypt軟件包安裝了哪個版本的Azure,它是相同的版本...。我不明白爲什麼會發生這種情況......。
的package.json
{
"name": "AzureRest",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www",
"test": "node ./node_modules/mocha/bin/mocha"
},
"dependencies": {
"node-pre-gyp": "~0.6.x",
"bcrypt": "~1.0.2",
"body-parser": "~1.16.0",
"chai": "^3.5.0",
"cookie-parser": "~1.4.3",
"cors": "^2.8.3",
"debug": "~2.6.0",
"ejs": "~2.5.5",
"express": "~4.14.1",
"jsonwebtoken": "^7.3.0",
"jwt-simple": "^0.5.1",
"mocha": "^3.2.0",
"mongoose": "~4.9.0",
"mongoose-pagination": "~1.0.0",
"morgan": "~1.7.0",
"passport": "^0.3.2",
"passport-jwt": "^2.2.1",
"serve-favicon": "~2.3.2",
"supertest": "^3.0.0",
"validator": "^7.1.0",
"slack-node": "^0.1.8"
}
}
什麼是你本地的操作系統和什麼是天藍色的? –
我的本地操作系統是Windows,我認爲我的API應用程序也可以在Windows上運行。奇怪的是,在我之前部署的人沒有這個問題。我不能問他,因爲他不在這裏了。 –
node_module已經存在於您的部署代碼中,或者您在那裏使用npm install。 –