npm에서 Firebase를 사용하여 배포하는 중 오류 발생 -- 접두사 $RESOURCE_DIR 런 린트
이 튜토리얼에 따라 Firebase 도구를 새로 설치했는데 첫 번째 Firebase 기능을 업로드하려고 합니다.파이어베이스를 실행할 때 초기화되는 hello-world 예제에서 이 문제가 발생했습니다(Init 동안 기능 CLI 기능만 설정).
대체할 경우$RESOURCE_DIR
에firebase.json
내 함수 폴더에서는 작동하지만, 물론 그것은 나쁜 관행이고 나는 적절한 것을 찾고 싶습니다.$RESOURCE_DIR
작동하는 교체.
PS D:\workspace\firebase-functions> firebase deploy
=== Deploying to 'newagent-5221d'...
i deploying functions
Running command: npm --prefix $RESOURCE_DIR run lint
npm ERR! path D:\workspace\firebase-functions\$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 'D:\workspace\firebase-functions\$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:\Users\dtlut\AppData\Roaming\npm-cache\_logs\2018-01-19T15_57_22_990Z-debug.log
Error: functions predeploy error: Command terminated with non-zero exit code4294963238
$RESOURCE_DIR을 %RESOURCE_DIR%로 대체해 보십시오.firebase.json
파일.
멀티 플랫폼 솔루션
이 게시물에서 볼 수 있듯이, 현재 실행 중인 다양한 플랫폼에 대한 구성을 요약해 보겠습니다.
리눅스
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
]
파워셸
"predeploy": [
"npm --prefix $Env:RESOURCE_DIR run lint"
]
Cmd.exe
"predeploy": [
"npm --prefix %RESOURCE_DIR% run lint"
]
이것은 당신의 클라우드 기능에 린트를 주기를 원하는데, 이것은 컴파일된 언어가 컴파일 시 오류를 발생시키는 것과 같은 명백한 오류를 코드에서 확인한다는 것을 의미합니다.
그럴 필요는 없어요, 언제든지 소방서에 들어가서 제거할 수 있어요.json 및 updating functions.uply는 빈 배열입니다.
"functions": {
"predeploy": [],
"source": "functions"
}
당신은 간단히 당신의 화력 기지를 만들 수 있습니다.다음과 같은 json 파일:
{
"functions": {
"predeploy": [
"npm --prefix ./functions/ run lint",
"npm --prefix ./functions/ run build"
]
}
}
제가 하고 있는 일은 $RESOURCE_DIR을 함수 폴더의 하드 코딩 경로로 바꾸는 것입니다. 저에게는 잘 작동합니다.
요약
ESLint를 로컬로 설치하여 package.json에 "devDependencies"를 추가합니다.실행:
`npm install eslint --save-dev`
위에서 설명한 대로 Windows에 대한 해결 방법입니다.화력 기지를 변경합니다.json:
`npm --prefix $RESOURCE_DIR run lint` to `npm --prefix %RESOURCE_DIR% run lint`
선택적으로 다음을 패키지에 추가합니다.json:
"scripts": { "lint": "eslint"} or "scripts": { "lint": "eslint.js"}
화재 기지의 위치를 확인합니다.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"
효과가 있을 것입니다
화력 기지에서 수정합니다."의 아들npm --prefix $RESOURCE_DIR run lint
"에게npm --prefix %RESOURCE_DIR% run lint
"
사이드 노트, 사용 중인 경우yarn
(및 아님)npm
), 를 지정해야 합니다.--cwd
매개변수(대신)--prefix
)
firebase.json
예:
{
...
"functions": {
"predeploy": [
"yarn --cwd \"$RESOURCE_DIR\" lint",
"yarn --cwd \"$RESOURCE_DIR\" build"
]
},
...
}
나의 문제는 노드 버전이었습니다.노드 버전이 잘못된 패키지를 설치한 후 이 오류가 발생했습니다.도망친yarn
노드 16으로 설정하지만 내 프로젝트는 노드 14를 사용합니다.배포하기 전에 노드 14로 전환했는데 이 오류가 발생했습니다.저는 여기에 언급된 수정 사항을 시도했고 마침내 제 문제가 무엇인지 깨달았습니다.이것은 정보를 제공하지 않는 오류 중 하나입니다.
이 사람은 해결 방법 없이 문제를 해결해야 합니다.
npm install -g git://github.com/firebase/firebase-tools#master
프로젝트 폴더에서 이 설치를 다시 시도하면 문제가 해결될 것입니다.
클라우드 기능 배포가 성공적으로 작동하고 있습니다.
"functions": {
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"
],`enter code here`
"source": "functions"
이전의 어떤 제안도 저에게 효과가 없었습니다.그래서 저는 소방서의 기능 부분을 삭제했습니다.호스팅 부분만 보관하여 아래와 같이 json 파일.그런 다음, 저는 기능 없이 앱을 성공적으로 배포했습니다.
다음 하고 CD를 했습니다.firebase deploy --only
{
"hosting": {
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
또 다른 문제는 코드에 오류가 있다는 것입니다. 예를 들어 이 오류 메시지가 표시됩니다.
55:47 error Expected '!==' and instead saw '!=' eqeqeq
69:47 error Expected '!==' and instead saw '!=' eqeqeq
수정하고 다시 배포한 후에 작동합니다.이 첨부된 이미지
저의 방식은이었습니다..
eslint
package.json
.
변경 내용:
"scripts": {
"lint": "eslint.",
}
받는 사람:
"scripts": {
"lint": "eslint",
}
언급URL : https://stackoverflow.com/questions/48345315/error-deploying-with-firebase-on-npm-prefix-resource-dir-run-lint
'programing' 카테고리의 다른 글
문자열의 첫 글자를 루비로 대문자화하는 방법 (0) | 2023.06.11 |
---|---|
c/c++ 프로그램에서 가능한/잠재적인 스택 오버플로 문제를 감지하는 방법은 무엇입니까? (0) | 2023.06.11 |
빈 셀이 포함된 Excel 스프레드시트를 읽기 위해 NPOI를 사용하는 방법은 무엇입니까? (0) | 2023.06.11 |
중복되지 않은 난수 목록을 만들려면 어떻게 해야 합니까? (0) | 2023.06.11 |
add_filter 대 add_action의 차이 (0) | 2023.06.11 |