TypeScriptでクラウド関数を試しています。
正常にインストールされた後、トリガーを追加し、デプロイをテストしました。
index.ts
import * as functions from 'firebase-functions';
export const createAccount = functions.auth.user().onCreate(event => {
const user = event.data;
console.log('user displayname', user.displayName);
return;
});
コマンド
firebase deploy --only functions
=== Deploying to 'project'...
i deploying functions
i functions: running predeploy script.
> functions@ build D:\vmbox\project\firebase\functions
> tslint -p tslint.json && ./node_modules/.bin/tsc
[〜#〜]エラー[〜#〜]
'.' is not recognized as an internal or external command,
operable program or batch file.
環境
firebase cli v3.16.0
ノードv6.11.2
npm v4.2.0
OS:Windows 10
ターミナル:powershell
///
Javascriptオプションを使用して関数を再起動しましたが、デプロイ時にエラーが発生しました。
TypeScriptのCLIによって行われたセットアップに関連している可能性があります。
「firebase.json」に追加された「functions」オプションを削除する必要がありました。
firebase.jsonでオプションが削除されました:
"functions": {
"predeploy": "npm --prefix functions run build"
}
package.json
内で置き換えるだけです
"build": "./node_modules/.bin/tslint.cmd -p tslint.json && ./node_modules/.bin/tsc.cmd"
これについて
"build": ".\\node_modules\\.bin\\tslint.cmd -p tslint.json && .\\node_modules\\.bin\\tsc.cmd"
そしてそれはウィンドウズで動作します。
関数フォルダー内のtsconfigに次の行を追加します。
"typeRoots": [
"node_modules/@types"
],
これは私のために働いた「compilerOptions」ブロックの一部です
遅れて申し訳ありません。 Andrewの答えは機能しますが、プロジェクトはWindowsでのみ機能するようになりました。詳細については、私のGitHubの回答を確認できます ここ 。 TL; DR:
Package.jsonのスクリプトを次のように変更します。
"scripts": {
"lint": "./node_modules/.bin/tslint -p tslint.json",
"build": "./node_modules/.bin/tsc"
}
Firebase.jsonのpredeployフックを次のように変更します。
{
"functions": {
"predeploy": "npm --prefix functions run lint && npm --prefix functions run build"
}
}