Ошибка при развертывании облачных функций .json не найдена - PullRequest
0 голосов
/ 06 сентября 2018

Я не могу развернуть свои функции при попытке импортировать файл учетных данных .json.

  1. При запуске функций инициализации Firebase я выбрал TypeScript вариант.
    1. Затем я поместил свои функции в TypeScript и попытался загрузить .json. файл с учетными данными моего проекта для использования firebase-администратор.

/ functions (Directory)

tsconfig.json

{
  "compilerOptions": {
    "lib": ["es6"],
    "module": "commonjs",
    "noImplicitReturns": true,
    "outDir": "lib",
    "sourceMap": true,
    "target": "es6",
    "types" : [ "node" ],
    "esModuleInterop": true,
    "resolveJsonModule": true,
  },
  "compileOnSave": true,
  "include": [
    "src",
    "./typings.d.ts"
  ]
}

typings.d.ts:

declare module "*.json" {
    const value: any;
    export default value;
  }

package.json:

{
  "name": "functions",
  "scripts": {
    "lint": "tslint --project tsconfig.json",
    "build": "tsc",
    "serve": "npm run build && firebase serve --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "main": "lib/index.js",
  "dependencies": {
    "firebase-admin": "~6.0.0",
    "firebase-functions": "^2.0.3"
  },
  "devDependencies": {
    "tslint": "~5.8.0",
    "typescript": "~2.8.3"
  },
  "private": true
}

функция / SRC /

- serviceAccountKey.json

- index.ts

index.ts:

import * as admin from 'firebase-admin';
import * as serviceAccount from './serviceAccountKey.json';

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: "DATABASE-URL"
});

Если я удаляю импорт работает нормально, я не могу развернуть его при импорте файла.

Ошибка:

i  deploying functions
Running command: npm --prefix "functions" run lint

> functions@ lint Z:\functions
> tslint --project tsconfig.json

Running command: npm --prefix "functions" run build

> functions@ build Z:\functions
> tsc

tsconfig.json(11,5): error TS5023: Unknown compiler option 'resolveJsonModule'.
+  functions: Finished running predeploy script.
i  functions: ensuring necessary APIs are enabled...
+  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...

Error: Error parsing triggers: Cannot find module './serviceAccountKey.json'

Try running "npm install" in your functions directory before deploying.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Вы должны использовать require() (не import) для извлечения содержимого файла JSON. Если вы действительно должны использовать import (я не рекомендую это), прочитайте это .

0 голосов
/ 06 сентября 2018

Если я удаляю импорт работает нормально, я не могу выполнить развертывание при импорте файла.

Некоторые опции tsconfig отсутствуют:

"esModuleInterop": true,
"resolveJsonModule": true,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...