我正在尝试将我的node.js服务器部署到谷歌云平台。
我在本地使用它时效果很好(使用npm start
node app.js
运行它。
但是当我尝试部署它(gcloud deploy
)时,它失败了,并且在日志中:
在app.js中的错误:无法找到模块' firebase-admin'位于Function.Module._load(module.js:417:25)的Function.Module._resolveFilename(module.js:469:15)位于Module.require(module.js:497:17)的require(内部/模块)。 js:20:19)在Object。 (/app/app.js:28:16)在Module.load(模块,位于Object.Module._extensions..js(module.js:579:10)的Module._compile(module.js:570:32)处。 js:487:32)在tryModuleLoad(module.js:446:12)的Function.Module._load(module.js:438:3)
我简单地使用:
var firebase = require("firebase-admin");
这是我的package.json文件:
{
"name": "Talk2Me-server",
"version": "1.0.3",
"main: "app.js",
"description": "Talk2Me app server",
"private": true,
"license": "Apache-2.0",
"scripts": {
"start": "node app.js"
},
"repository": {
"type": "git",
"url": "https://github.com/guytsur/Talk2Me.git"
},
"author": "Talk2Me Team,",
"contributors": [
"Guy Tsur<guytsur7@google.com>"
],
"cloud-repo-tools": {
"requiresKeyFile": true,
"requiresProjectId": true
},
"dependencies": {
"express": "~4.15.2",
"request": "^2.81.0",
"firebase-admin": "^4.1.2",
"firebase": "^2.4.2"
},
"devDependencies": {
"@google-cloud/nodejs-repo-tools": "1.4.16",
"ava": "~0.21.0",
"supertest": "~3.0.0",
"tap-dot": "~1.0.5"
},
"engines": {
"node": ">=4.3.2"
}
}
谢谢!
答案 0 :(得分:0)
好的,我设法解决了,
我首先使用
重新安装软件包npm install --save firebase-admin
而且我也做了一点黑客,我添加到包文件中:
"scripts": {
"start": "npm install firebase-admin; node app.js"
},
我认为这不是最好的练习,但它确实有用。