サーバー側で実行するクラウド機能のサブディレクトリfunctions
を持つVueJSプロジェクトでTypescriptを使用しようとしています。クラウド機能を持つES7の "インクルード"機能を無効にできません
私は、ES2017の機能にArray.prototype.includesを使用したいと私はそれが私の機能ディレクトリに次のtsconfig.json
を追加することで実現させたのだと思った:
{
"compilerOptions": {
"lib": ["es2016", "es2017"],
"target": "es6",
"module": "es2015",
"moduleResolution": "node",
"sourceMap": true,
"strict": true
}
}
た場合、私はファンクションディレクトリに移動し、エラーなしで実行するtsc
トランスペアラを実行します。また、私のvs-code editorは、 "includes"の使用に関する問題を強調しません。しかし、私は私のfirebase.json
設定ファイルに以下を追加しているFirebaseドキュメントに提案した構成とともに、次のターンで
"functions": {
"predeploy": "npm --prefix functions run build"
}
、機能ディレクトリ内の私のpackage.json
が記載されているようビルドスクリプトがあります。
"scripts": {
"build": "tslint *.ts && tsc *.ts"
},
しかし、私はfirebase deploy --only functions
を実行すると、それは正しくビルドスクリプトを実行しますが、それは次のエラーを与える:
私はそれが間違ってルートプロジェクトディレクトリ内index.ts(44,31): error TS2339: Property 'includes' does not exist on type 'string[]'.
tsconfig.json
を使用しているため、これが起こってすることができると信じて(別名、VueJSが使用している1)の代わりに
機能ディレクトリ内の1つの私はありませんよ完全に確かです。
私はにビルドコマンドを変更することでこの問題を回避することができます
"build": "tslint *.ts && tsc *.ts --lib 'es7'"
、これが作業を行いますが、それは私がそれを少しハッキングしてきた感じを私に残します。誰かがより良い答えを指すことができますか?