部署云函数时出错。未找到json 当我尝试导入.json凭据文件时,无法部署我的函数。 运行firebase init函数时,我选择了类型脚本 选项 然后我将我的函数放在TypeScript中,并尝试加载.json 使用我的项目的凭据存档,以便使用 firebase管理员
/功能(目录) tsconfig.json部署云函数时出错。未找到json 当我尝试导入.json凭据文件时,无法部署我的函数。 运行firebase init函数时,我选择了类型脚本 选项 然后我将我的函数放在TypeScript中,并尝试加载.json 使用我的项目的凭据存档,以便使用 firebase管理员,json,typescript,google-cloud-functions,Json,Typescript,Google Cloud Functions,/功能(目录) tsconfig.json { "compilerOptions": { "lib": ["es6"], "module": "commonjs", "noImplicitReturns": true, "outDir": "lib", "sourceMap": true, "target": "es6", "types" : [ "node" ], "esModuleInterop": true, "r
{
"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"
]
}
打字。d.ts:
declare module "*.json" {
const value: any;
export default value;
}
{
"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
}
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.
package.json:
declare module "*.json" {
const value: any;
export default value;
}
{
"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
}
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.
功能/src/
--serviceAccountKey.json
--索引
index.ts:
declare module "*.json" {
const value: any;
export default value;
}
{
"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
}
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.
如果删除导入操作正常,则导入文件时无法部署。
错误:
declare module "*.json" {
const value: any;
export default value;
}
{
"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
}
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.
如果我删除的导入工作正常,我无法在导入文件时部署
缺少几个tsconfig选项:
"esModuleInterop": true,
"resolveJsonModule": true,
您应该使用
require()
(而不是import
)拉入JSON文件的内容。如果您真的必须使用导入
(我不建议这样做),。这些选项在编译器选项中,对吗?我导入了它,看到上面发生的错误,tslint.json
设置说它可以转换为导入。我的经验是,不使用导入更容易,只需要将文件从函数根文件夹中取出。我发现使用import没有任何好处。我正在使用require
,但我仍然无法读取其中的.json文件。这让我非常头疼,我今天浪费了很多时间试图解决这个问题……同样。我通过使用require并将json放在functions文件夹中解决了这个问题。如果TS位于src中,则可能需要('../file.json')。