web-dev-qa-db-ja.com

ゼロ以外の終了コード(プロジェクトパスのスペース)で始まるFirebaseデプロイエラー

最近、firebase deployコマンドに問題がありました。 firebase deployコマンドの後、firebase(ストレージ、データベースなど)を除く他のすべてが展開されていたため、この状況を修正するためにfirebaseを再インストールすることにしましたが、再インストール後に問題が大きくなりました。現在、それらはいずれも次のエラーでデプロイされていません。

i deploying database, functions
Running command: npm --prefix $RESOURCE_DIR run lint
npm ERR! path C:\Users\faruk\Google Drive\Android\firebase\1\$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:\Users\faruk\Google Drive\Android\firebase\1\$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\faruk\AppData\Roaming\npm-cache\_logs\2018-01-24T18_21_34_878Z-debug.log

Error: functions predeploy error: Command terminated with non-zero exit code4294963238

少し研究した後、これに関するいくつかのトピックを見ました。

$RESOURCE_DIR to %RESOURCE_DIR%

windowsシステムで(私はWindows 10 btwを使用しています)。そのため、関数フォルダーの1つ上のレベルにあるfirebase.jsonファイルを編集しました。このような。 (これが編集すべき正しいファイルであるかどうかはわかりません)

  "database": {
    "rules": "database.rules.json"
  },
  "functions": {
    "predeploy": [
      "npm --prefix %RESOURCE_DIR% run lint"
    ]
  }
}

しかし、この編集の後、このような別のエラーメッセージが表示され始めました。

i  deploying database, functions
Running command: npm --prefix %RESOURCE_DIR% run lint

Usage: npm <command>

where <command> is one of:
    access, adduser, bin, bugs, c, cache, completion, config,
    ddp, dedupe, deprecate, dist-tag, docs, doctor, edit,
    explore, get, help, help-search, i, init, install,
    install-test, it, link, list, ln, login, logout, ls,
    outdated, owner, pack, ping, prefix, profile, Prune,
    publish, rb, rebuild, repo, restart, root, run, run-script,
    s, se, search, set, shrinkwrap, star, stars, start, stop, t,
    team, test, token, tst, un, uninstall, unpublish, unstar,
    up, update, v, version, view, whoami

npm <command> -h     quick help on <command>
npm -l           display full usage info
npm help <term>  search for help on <term>
npm help npm     involved overview

Specify configs in the ini-formatted file:
    C:\Users\faruk\.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config

[email protected] C:\Program Files\nodejs\node_modules\npm

Error: functions predeploy error: Command terminated with non-zero exit code1

どんなアドバイスも大歓迎です。前もって感謝します。

21
Faruk

このエラーは、プロジェクトのパスのどこかにスペースがあるという事実(「Googleドライブ」)に起因します。

C:\Users\faruk\Google Drive\Android\firebase\1\$RESOURCE_DIR\package.json

残念ながら、これはnpmコマンドラインを混乱させ、そのスペースで区切られた2つの引数としてそれを取っています。

通常、スペースがそのように解釈されるのを防ぐために、全体を引用符で囲むことができると期待しています。だから私はこれを試しました:

"predeploy": [
  "npm --prefix \"%RESOURCE_DIR%\" run lint"
]

そして、それは私のために働きます。

この問題について、またWindowsに変更を加える必要があるという事実について、Firebaseチームに内部的にフォローアップします。

39
Doug Stevenson

実際に起こることは、Windowsでfirebase.jsonには、デフォルトで次が含まれます。

"predeploy": [
  "npm --prefix \"$RESOURCE_DIR\" run lint"
]

次のように変更します。

"predeploy": [
  "npm --prefix \"%RESOURCE_DIR%\" run lint"
]

それは私のために働いた、あなたのために働くことを願っています。

16
Spyde

Firebase.jsonで$ RESOURCE_DIRを%RESOURCE_DIR%に変更した後、これは私にとってうまくいく

{
  "functions": {
    "predeploy": [
      "npm --prefix \"%RESOURCE_DIR%\" run lint",
      "npm --prefix \"%RESOURCE_DIR%\" run build"
    ]
  }
}
3
Aashay karekar

Windowsでも同じ問題が発生しました。私がやったのは、functionsフォルダーにあるすべてのファイルをコピーして%RESOURCE_DIR%フォルダーに渡し、Firebase deployを実行して正常にデプロイされたことです。

1
Aditya Tandon

プロジェクトのfunctionsフォルダー内でnpm installを実行します。インストールされていないindex.tsに1つ以上のノードモジュールをインポートしている可能性があります。この場合、npm install module_not_installed_yet --saveを実行する必要があります

0
DigaoParceiro

"predeploy":["npm --prefix \" $ RESOURCE_DIR\"run lint"]

私は最終的にfirebase.jsonでそれを削除し、再び展開し始めました

0
Clarenz Elon

私の場合、次のようなログを印刷する関数を作成しました。

function log(tag: string, value: any) {
    console.log(tag, JSON.stringify(value));
}

asyncをその前に追加すると、ビルドが爆発し始めます:)

0
Hemant Kaushik

VSコードを使用する場合、Firecastのフォルダーを開く(これはfirebase.jsonリソースディレクトリ)firebase.jsonでファイルのコードを次のように変更します。

{
  "functions": {
    "predeploy": [
      "npm --prefix \"%RESOURCE_DIR%\" run lint",
      "npm --prefix \"%RESOURCE_DIR%\" run build"
    ]
  }
}
0
Ark Srivastav

私にとっては、firebaseがスクリプトを見つけることができなかったため、問題は(推測した)でした。

動作しませんでした:

{
  "hosting": {
    "predeploy": "predeploy.sh",
    ...
}
Running command: predeploy.sh
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: spawn predeploy.sh ENOENT
    at exports._errnoException (util.js:1020:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
    at onErrorNT (internal/child_process.js:367:16)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
    at Module.runMain (module.js:606:11)
    at run (bootstrap_node.js:389:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:504:3

Error: hosting predeploy error: Command terminated with non-zero exit code1

うまくいきました:(./

{
  "hosting": {
    "predeploy": "./predeploy.sh",
    ...
}
0
Nick Grealy