web-dev-qa-db-ja.com

npm --prefix $ RESOURCE_DIR run lintでfirebaseを使用してデプロイする際のエラー

Firebaseツールの新規インストールがあり(これに続いて tutorial )、最初のFirebase機能をアップロードしようとしています。 firebase initを実行すると初期化されるというhello-worldの例でこの問題が発生します(init中に関数のCLI機能を設定するだけです)

$RESOURCE_DIRfirebase.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
51
Daan Luttik

firebase.jsonファイルの$ RESOURCE_DIRを%RESOURCE_DIR%に置き換えてみてください。

113
Kamil Svoboda

次のようにfirebase.jsonファイルを簡単に作成できます。

{
  "functions": {
    "predeploy": [
      "npm --prefix ./functions/ run lint",
      "npm --prefix ./functions/ run build"
    ]
  }
}

私がやっていることは、$ RESOURCE_DIRを機能フォルダのハードコードされたパスに置き換えることです

26
Inzamam Malik

クラウド関数をリントしたいのです。つまり、コンパイルされた言語がコンパイル時にエラーをスローするような明らかなエラーがないか、コードをチェックします。

必要ではありません。firebase.jsonに移動し、functions.predeployを空の配列に更新することで、いつでも削除できます。

  "functions": {
    "predeploy": [],
    "source": "functions" 
  }

「リンティング」とは

20
Neo

要約

  1. ESLintをローカルにインストールして、「devDependencies」をpackage.jsonに追加します。実行:

     `npm install eslint --save-dev`
    
  2. 上記のWindowsの回避策。変更firebase.json

     `npm --prefix $RESOURCE_DIR run lint` to `npm --prefix %RESOURCE_DIR% run lint`
    
  3. オプションで、次をpackage.jsonに追加します。

     "scripts": { "lint": "eslint"} or "scripts": { "lint": "eslint.js"}
    
8
Cutoutcow

firebase.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"

うまくいく

4

Firebase.jsonを「npm --prefix $RESOURCE_DIR run lint」から「npm --prefix %RESOURCE_DIR% run lint」に変更します

1
Bhuwan Maharjan

これは回避策なしで問題を解決する必要があります

npm install -g git://github.com/firebase/firebase-tools#master

この問題を解決する必要がありますウルプロジェクトフォルダーでこのインストールをもう一度試してください。

0
jaideep_johny