最近、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
どんなアドバイスも大歓迎です。前もって感謝します。
このエラーは、プロジェクトのパスのどこかにスペースがあるという事実(「Googleドライブ」)に起因します。
C:\Users\faruk\Google Drive\Android\firebase\1\$RESOURCE_DIR\package.json
残念ながら、これはnpmコマンドラインを混乱させ、そのスペースで区切られた2つの引数としてそれを取っています。
通常、スペースがそのように解釈されるのを防ぐために、全体を引用符で囲むことができると期待しています。だから私はこれを試しました:
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint"
]
そして、それは私のために働きます。
この問題について、またWindowsに変更を加える必要があるという事実について、Firebaseチームに内部的にフォローアップします。
実際に起こることは、Windowsでfirebase.json
には、デフォルトで次が含まれます。
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
]
次のように変更します。
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint"
]
それは私のために働いた、あなたのために働くことを願っています。
Firebase.jsonで$ RESOURCE_DIRを%RESOURCE_DIR%に変更した後、これは私にとってうまくいく
{
"functions": {
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"
]
}
}
Windowsでも同じ問題が発生しました。私がやったのは、functionsフォルダーにあるすべてのファイルをコピーして%RESOURCE_DIR%フォルダーに渡し、Firebase deployを実行して正常にデプロイされたことです。
プロジェクトのfunctions
フォルダー内でnpm install
を実行します。インストールされていないindex.ts
に1つ以上のノードモジュールをインポートしている可能性があります。この場合、npm install module_not_installed_yet --save
を実行する必要があります
"predeploy":["npm --prefix \" $ RESOURCE_DIR\"run lint"]
私は最終的にfirebase.jsonでそれを削除し、再び展開し始めました
私の場合、次のようなログを印刷する関数を作成しました。
function log(tag: string, value: any) {
console.log(tag, JSON.stringify(value));
}
async
をその前に追加すると、ビルドが爆発し始めます:)
VSコードを使用する場合、Firecastのフォルダーを開く(これはfirebase.jsonリソースディレクトリ)firebase.jsonでファイルのコードを次のように変更します。
{
"functions": {
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"
]
}
}
私にとっては、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",
...
}