LANGUAGE/!$%!% ERROR NOTE 2018. 12. 23. 00:34

!markdown


# firebase - 파이어베이스 




### Error - 에러


```

Running command: npm --prefix $RESOURCE_DIR run lint

npm ERR! path C:\PATH_TO_FIREBASE_PROJECT\$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:\PATH_TO_FIREBASE_PROJECT\$RESOURCE_DIR\package.json'

npm ERR! enoent This is related to npm not being able to find a file.

```




### Problem - 문제


단순히 파일을 찾지 못한 것인데


왜냐하면, firebase-tools가 자동으로 스크립트를 생성해 줄 때, 호환성을 고려하지 못하고 유닉스 식 환경변수로 생성해주어서 그렇다.


Window의 경우는 변수를 %VARIABLE% 이런식으로 다루는데 Unix 같은 것은 $VARIABLE 이런식으로 환경변수를 다룬다.


`firebase.json`파일을 열고 아래의 AFTER 처럼 바꿔주자.




### BEFORE


```

"functions": {

"predeploy": [

  "npm --prefix \"$RESOURCE_DIR\" run lint"

]

},

```


### AFTER


- 방법 1 - 상대 경로를 적는다.


```

"functions": {

"predeploy": [

  "npm --prefix ./functions run lint"

]

},

```


- 방법 2 - Windows 환경변수 형식으로 바꿔준다.


```

"functions": {

"predeploy": [

  "npm --prefix \"%RESOURCE_DIR%\" run lint"

]

},

```



### Solved - 해결


`firebase.json` 파일을 열고, `"firestore"` 필드를 해당 필드를 주석 처리 하자.




### 참고


- $RESOURCE_DIR predeploy variable #610: [https://github.com/firebase/firebase-tools/issues/610#issuecomment-360147507](https://github.com/firebase/firebase-tools/issues/610#issuecomment-360147507)