2017-02-11 3 views
8

Вначале развертывание приложения GAE здесь, я пытаюсь следовать этому руководству: https://firebase.googleblog.com/2016/08/sending-notifications-between-android.html (см. Раздел кода узла).Google App Engine - Узел: не удается найти модуль «firebase-admin»

Я побежал

npm install firebase-admin --save 
npm install request --save 

на моей машине, package.json здесь, но когда я использую gcloud app deploy, я получаю эти журналы при открытии приложения на моем браузере:

2017-02-10 09:35:02 default[20170210t103151] module.js:471 
2017-02-10 09:35:02 default[20170210t103151]  throw err; 
2017-02-10 09:35:02 default[20170210t103151] ^
2017-02-10 09:35:02 default[20170210t103151] 
2017-02-10 09:35:02 default[20170210t103151] Error: Cannot find module 'firebase-admin' 
2017-02-10 09:35:02 default[20170210t103151]  at Function.Module._resolveFilename (module.js:469:15) 
2017-02-10 09:35:02 default[20170210t103151]  at Function.Module._load (module.js:417:25) 
2017-02-10 09:35:02 default[20170210t103151]  at Module.require (module.js:497:17) 
2017-02-10 09:35:02 default[20170210t103151]  at require (internal/module.js:20:19) 
2017-02-10 09:35:02 default[20170210t103151]  at Object.<anonymous> (/app/server.js:1:78) 
2017-02-10 09:35:02 default[20170210t103151]  at Module._compile (module.js:570:32) 
2017-02-10 09:35:02 default[20170210t103151]  at Object.Module._extensions..js (module.js:579:10) 
2017-02-10 09:35:02 default[20170210t103151]  at Module.load (module.js:487:32) 
2017-02-10 09:35:02 default[20170210t103151]  at tryModuleLoad (module.js:446:12) 
2017-02-10 09:35:02 default[20170210t103151]  at Function.Module._load (module.js:438:3) 
2017-02-10 09:35:07 default[20170210t103151] module.js:471 
2017-02-10 09:35:07 default[20170210t103151]  throw err; 
2017-02-10 09:35:07 default[20170210t103151] ^
2017-02-10 09:35:07 default[20170210t103151] 
2017-02-10 09:35:07 default[20170210t103151] Error: Cannot find module 'firebase-admin' 
2017-02-10 09:35:07 default[20170210t103151]  at Function.Module._resolveFilename (module.js:469:15) 
2017-02-10 09:35:07 default[20170210t103151]  at Function.Module._load (module.js:417:25) 
2017-02-10 09:35:07 default[20170210t103151]  at Module.require (module.js:497:17) 
2017-02-10 09:35:07 default[20170210t103151]  at require (internal/module.js:20:19) 
2017-02-10 09:35:07 default[20170210t103151]  at Object.<anonymous> (/app/server.js:1:78) 
2017-02-10 09:35:07 default[20170210t103151]  at Module._compile (module.js:570:32) 
2017-02-10 09:35:07 default[20170210t103151]  at Object.Module._extensions..js (module.js:579:10) 
2017-02-10 09:35:07 default[20170210t103151]  at Module.load (module.js:487:32) 
2017-02-10 09:35:07 default[20170210t103151]  at tryModuleLoad (module.js:446:12) 
2017-02-10 09:35:07 default[20170210t103151]  at Function.Module._load (module.js:438:3) 
2017-02-10 09:43:58 default[20170210t104151] module.js:471 
2017-02-10 09:43:58 default[20170210t104151]  throw err; 
2017-02-10 09:43:58 default[20170210t104151] ^
2017-02-10 09:43:58 default[20170210t104151] 
2017-02-10 09:43:58 default[20170210t104151] Error: Cannot find module 'serviceAccountKey.json' 
2017-02-10 09:43:58 default[20170210t104151]  at Function.Module._resolveFilename (module.js:469:15) 
2017-02-10 09:43:58 default[20170210t104151]  at Function.Module._load (module.js:417:25) 
2017-02-10 09:43:58 default[20170210t104151]  at Module.require (module.js:497:17) 
2017-02-10 09:43:58 default[20170210t104151]  at require (internal/module.js:20:19) 
2017-02-10 09:43:58 default[20170210t104151]  at Object.<anonymous> (/app/server.js:7:22) 
2017-02-10 09:43:58 default[20170210t104151]  at Module._compile (module.js:570:32) 
2017-02-10 09:43:58 default[20170210t104151]  at Object.Module._extensions..js (module.js:579:10) 
2017-02-10 09:43:58 default[20170210t104151]  at Module.load (module.js:487:32) 
2017-02-10 09:43:58 default[20170210t104151]  at tryModuleLoad (module.js:446:12) 
2017-02-10 09:43:58 default[20170210t104151]  at Function.Module._load (module.js:438:3) 
2017-02-10 09:44:10 default[20170210t104151] module.js:471 
2017-02-10 09:44:10 default[20170210t104151]  throw err; 
2017-02-10 09:44:10 default[20170210t104151] ^
2017-02-10 09:44:10 default[20170210t104151] 
2017-02-10 09:44:10 default[20170210t104151] Error: Cannot find module 'serviceAccountKey.json' 
2017-02-10 09:44:10 default[20170210t104151]  at Function.Module._resolveFilename (module.js:469:15) 
2017-02-10 09:44:10 default[20170210t104151]  at Function.Module._load (module.js:417:25) 
2017-02-10 09:44:10 default[20170210t104151]  at Module.require (module.js:497:17) 
2017-02-10 09:44:10 default[20170210t104151]  at require (internal/module.js:20:19) 
2017-02-10 09:44:10 default[20170210t104151]  at Object.<anonymous> (/app/server.js:7:22) 
2017-02-10 09:44:10 default[20170210t104151]  at Module._compile (module.js:570:32) 
2017-02-10 09:44:10 default[20170210t104151]  at Object.Module._extensions..js (module.js:579:10) 
2017-02-10 09:44:10 default[20170210t104151]  at Module.load (module.js:487:32) 
2017-02-10 09:44:10 default[20170210t104151]  at tryModuleLoad (module.js:446:12) 
2017-02-10 09:44:10 default[20170210t104151]  at Function.Module._load (module.js:438:3) 
2017-02-10 16:20:02 default[20170210t124920] Error: Credential implementation provided to initializeApp() via the "credential" property failed to fetch a valid Google OAuth2 access token with the following error: "connect ETIMEDOUT 74.125.202.84:443". 
2017-02-10 16:20:02 default[20170210t124920]  at /app/node_modules/firebase-admin/lib/firebase-app.js:74:23 
2017-02-10 16:20:02 default[20170210t124920]  at process._tickCallback (internal/process/next_tick.js:103:7) 

Как я это исправить ??

+0

Есть аналогичная проблема, также есть «Не удается найти модуль„serviceAccountKey.json“У меня есть ощущение, что это имеет делать с модулем firebase-admin. – ffritz

+1

Работает ли скрипт локально? Неужели это происходит только при развертывании в GAE? – bojeil

+0

Я не уверен, как я должен тестировать его локально ... Не эксперт узла (пока), можете ли вы посоветовать мне, как это сделать? – ypicard

ответ

1

Я мог бы сделать обходной путь по этому делу, как это: (передача параметров serviceAccountkeyFile.json внутри app.js кода):

let defaultAppConfig = { 
    credential: admin.credential.cert({ 
     type: "service_account", 
     project_id: "txxxxxxxxxx", 
     private_key_id: "xxxxxxxxxxxxxxxxxxxxxxxxxx", 
     private_key: "-----BEGIN PRIVATE KEY----------END PRIVATE KEY-----\n", 
     client_email: "[email protected]", 
     client_id: "11111111111111111", 
     auth_uri: "https://accounts.google.com/o/oauth2/auth", 
     token_uri: "https://accounts.google.com/o/oauth2/token", 
     auth_provider_x509_cert_url: "https://www.googleapis.com/oauth2/v1/certs", 
     client_x509_cert_url: "https://www.googleapis.com/robot/v1/metadata/x509/jjjjjj.gserviceaccount.com" 
    }), 
    databaseURL: 'https://projectxxx.firebaseio.com/' 
} 

defaultApp = admin.initializeApp(defaultAppConfig); 
12

Эти вопросы кажутся быть вызваны непониманием того, как require() путей Работа. Вы не можете использовать абсолютный путь, потому что что-то вроде require("/Users/username/somepath"), очевидно, не будет существовать на удаленном компьютере, когда приложение будет развернуто, и импорт не удастся. Использование require("serviceAccountKey.json") будет выглядеть в node_modules/serviceAccountKey.json относительно каталога приложения.

Если вы хотите загрузить serviceAccountKey.json из корневого каталога приложения, вы должны использовать require("./serviceAccountKey.json"). Если он был в подкаталоге foo под корнем, вы должны использовать require("./foo/serviceAccountKey.json"). Это также относится к модулям загрузки в целом, таким как firebase-admin.

NodeJS Modules documentation подробнее поясняет механизм require().

+0

Это очень приятный ответ. Это должен быть принятый ответ. Спасибо за это. –

0

У меня была аналогичная проблема работает gcloud app deploy

Error: Cannot find module 'webpack-dev-server' 
at Function.Module._resolveFilename (module.js:469:15) 

Я решил проблему перемещения заданную зависимость (wepack-DEV-сервер) от devDependencies к dependencies в package.json.

Если у кого-то еще такая же проблема, я предлагаю взглянуть на ваши зависимости в package.json. dependencies необходимы для запуска, devDependencies только разработать, например:. Юнит-тесты, CoffeeScript на Javascript transpilation, минификация,

Смежные вопросы