Firebase Cloud Function 部署 tslint 报错
Firebase Cloud Function deploy tslint error
我使用 CLI 启动了一个新的 Firebase 项目。
我只使用云功能并想部署一些功能
但是我得到了这个错误
functions@ lint: `tslint --project tsconfig.json`
我已经更改了以下几行:
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
至
"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"
因为他们也抛出了一个错误。
我需要更改什么?
编辑:
我使用 cli 创建了一个新的 Firebase 项目(在一个名为 Firebase 的文件夹中)并且只使用云功能。
然后我将我所有的 .ts 文件复制到 src 文件夹并添加了我的依赖项。
"firebase-admin": "~5.12.1",
"firebase-functions": "^1.0.3",
"@types/async": "^2.0.48",
"@types/camelcase": "^4.1.0",
"@types/glob": "^5.0.35",
"@types/request": "^2.47.0",
"@types/xml2js": "^0.4.2",
"async": "^2.6.0",
"camelcase": "^4.1.0",
"glob": "^7.1.2",
"install": "0.10.4",
"npm": "5.6.0",
"request": "^2.85.0",
"xml2js": "^0.4.19"
然后我 运行 firebase 部署并得到以下内容:
i deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run lint
npm ERR! path C:\...\Projects\Firebase\%RESOURCE_DIR%\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'C:\...\Projects\Firebase\%RESOURCE_DIR%\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! C:\...\AppData\Roaming\npm-cache\_logs18-06-19T20_48_36_986Z-debug.log
Error: functions predeploy error: Command terminated with non-zero exit code4294963238
C:\...\Projects\Firebase>
日志文件显示:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\Program Files\nodejs\node.exe',
1 verbose cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli '--prefix',
1 verbose cli '%RESOURCE_DIR%',
1 verbose cli 'run',
1 verbose cli 'lint' ]
2 info using npm@5.6.0
3 info using node@v8.9.4
4 verbose stack Error: ENOENT: no such file or directory, open 'C:\...\Projects\Firebase\%RESOURCE_DIR%\package.json'
5 verbose cwd C:\...\Projects\Firebase
6 verbose Windows_NT 10.0.17134
7 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "--prefix" "%RESOURCE_DIR%" "run" "lint"
8 verbose node v8.9.4
9 verbose npm v5.6.0
10 error path C:\...\Projects\Firebase\%RESOURCE_DIR%\package.json
11 error code ENOENT
12 error errno -4058
13 error syscall open
14 error enoent ENOENT: no such file or directory, open 'C:\...\Projects\Firebase\%RESOURCE_DIR%\package.json'
15 error enoent This is related to npm not being able to find a file.
16 verbose exit [ -4058, true ]
我只是在必要时编辑了目录路径。
所以我创建了另一个使用托管和函数的新项目。
我得到了与上面相同的错误。再次搜索后,我找到了这个解决方案。
在 firebase.json 文件中,我替换了
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
},
和
"functions": {
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"
]
}
对我有用的是从 'functions' 文件夹中删除 node_modules,然后重新安装所有内容。我想我应该先尝试这个而不是别的东西。当然,确保你已经安装了tslint依赖。
在您的项目中重新初始化 firebase
firebase init
我使用 CLI 启动了一个新的 Firebase 项目。 我只使用云功能并想部署一些功能 但是我得到了这个错误
functions@ lint: `tslint --project tsconfig.json`
我已经更改了以下几行:
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
至
"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"
因为他们也抛出了一个错误。
我需要更改什么?
编辑:
我使用 cli 创建了一个新的 Firebase 项目(在一个名为 Firebase 的文件夹中)并且只使用云功能。 然后我将我所有的 .ts 文件复制到 src 文件夹并添加了我的依赖项。
"firebase-admin": "~5.12.1",
"firebase-functions": "^1.0.3",
"@types/async": "^2.0.48",
"@types/camelcase": "^4.1.0",
"@types/glob": "^5.0.35",
"@types/request": "^2.47.0",
"@types/xml2js": "^0.4.2",
"async": "^2.6.0",
"camelcase": "^4.1.0",
"glob": "^7.1.2",
"install": "0.10.4",
"npm": "5.6.0",
"request": "^2.85.0",
"xml2js": "^0.4.19"
然后我 运行 firebase 部署并得到以下内容:
i deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run lint
npm ERR! path C:\...\Projects\Firebase\%RESOURCE_DIR%\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'C:\...\Projects\Firebase\%RESOURCE_DIR%\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! C:\...\AppData\Roaming\npm-cache\_logs18-06-19T20_48_36_986Z-debug.log
Error: functions predeploy error: Command terminated with non-zero exit code4294963238
C:\...\Projects\Firebase>
日志文件显示:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\Program Files\nodejs\node.exe',
1 verbose cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli '--prefix',
1 verbose cli '%RESOURCE_DIR%',
1 verbose cli 'run',
1 verbose cli 'lint' ]
2 info using npm@5.6.0
3 info using node@v8.9.4
4 verbose stack Error: ENOENT: no such file or directory, open 'C:\...\Projects\Firebase\%RESOURCE_DIR%\package.json'
5 verbose cwd C:\...\Projects\Firebase
6 verbose Windows_NT 10.0.17134
7 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "--prefix" "%RESOURCE_DIR%" "run" "lint"
8 verbose node v8.9.4
9 verbose npm v5.6.0
10 error path C:\...\Projects\Firebase\%RESOURCE_DIR%\package.json
11 error code ENOENT
12 error errno -4058
13 error syscall open
14 error enoent ENOENT: no such file or directory, open 'C:\...\Projects\Firebase\%RESOURCE_DIR%\package.json'
15 error enoent This is related to npm not being able to find a file.
16 verbose exit [ -4058, true ]
我只是在必要时编辑了目录路径。
所以我创建了另一个使用托管和函数的新项目。 我得到了与上面相同的错误。再次搜索后,我找到了这个解决方案。 在 firebase.json 文件中,我替换了
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
},
和
"functions": {
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"
]
}
对我有用的是从 'functions' 文件夹中删除 node_modules,然后重新安装所有内容。我想我应该先尝试这个而不是别的东西。当然,确保你已经安装了tslint依赖。
在您的项目中重新初始化 firebase
firebase init