Firebase-tools: Fungsi hanya menyebarkan kesalahan, merujuk folder node_modules aplikasi induk

Dibuat pada 19 Apr 2018  ·  21Komentar  ·  Sumber: firebase/firebase-tools

Informasi versi

basis api: 3.18.4
simpul: 8.10.0
npm: 5.6.0

Informasi Platform

jendela

Langkah-langkah untuk mereproduksi

firebase deploy --only functions

Perilaku yang diharapkan

Fungsi cloud Firebase akan berhasil diterapkan.

Perilaku sebenarnya

Menerima kesalahan karena build fungsi cloud tampaknya merujuk folder node_modules dari level root aplikasi. @types/d3 dan @types/googlemaps disertakan dalam file package.json aplikasi saya dan bukan file package.json fungsi saya.

```PS [PATH PADA MESIN LOKAL]> firebase deploy --only functions

=== Menerapkan ke 'PROJECT_NAME'...

saya menerapkan fungsi
Menjalankan perintah: npm --prefix "$RESOURCE_DIR" run lint

function@ lint [JALAN PADA MESIN LOKAL]\fungsi
tslint --proyek tsconfig.json

Menjalankan perintah: npm --prefix "$RESOURCE_DIR" jalankan build

function@ build [JALAN PADA MESIN LOKAL]\fungsi
tsc

../node_modules/@types/d3-axis/index.d.ts(50,36): kesalahan TS2304: Tidak dapat menemukan nama 'SVGSVGElement'.
../node_modules/@types/d3-axis/index.d.ts(50,52): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(32,23): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(39,27): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(50,27): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(63,27): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(63,77): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(70,27): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(81,32): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(94,32): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(94,72): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(98,23): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(121,28): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(126,23): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(138,30): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts (164,36): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(191,45): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(223,38): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-chord/index.d.ts(360,16): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-chord/index.d.ts(368,22): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-dispatch/index.d.ts(8,37): kesalahan TS2304: Tidak dapat menemukan nama 'EventTarget'.
../node_modules/@types/d3-dispatch/index.d.ts(18,36): kesalahan TS2304: Tidak dapat menemukan nama 'EventTarget'.
../node_modules/@types/d3-drag/index.d.ts(19,38): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-drag/index.d.ts(24,36): kesalahan TS2304: Tidak dapat menemukan nama 'HTMLElement'.
../node_modules/@types/d3-drag/index.d.ts (24,50): kesalahan TS2304: Tidak dapat menemukan nama 'SVGSVGElement'.
../node_modules/@types/d3-drag/index.d.ts (24,66): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-drag/index.d.ts(390,37): kesalahan TS2304: Tidak dapat menemukan nama 'Jendela'.
../node_modules/@types/d3-drag/index.d.ts(402,36): kesalahan TS2304: Tidak dapat menemukan nama 'Jendela'.
../node_modules/@types/d3-fetch/index.d.ts(18,42): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(18,64): kesalahan TS2304: Tidak dapat menemukan nama 'Blob'.
../node_modules/@types/d3-fetch/index.d.ts(27,44): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(41,12): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(82,11): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(100,12): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(145,11): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(157,42): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(157,64): kesalahan TS2304: Tidak dapat menemukan nama 'Dokumen'.
../node_modules/@types/d3-fetch/index.d.ts(167,74): kesalahan TS2304: Tidak dapat menemukan nama 'HTMLImageElement'.
../node_modules/@types/d3-fetch/index.d.ts(179,72): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(189,41): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(189,63): kesalahan TS2304: Tidak dapat menemukan nama 'Dokumen'.
../node_modules/@types/d3-fetch/index.d.ts(199,42): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(212,12): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(254,11): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(266,41): kesalahan TS2304: Tidak dapat menemukan nama 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(266,63): kesalahan TS2304: Tidak dapat menemukan nama 'XMLDocument'.
../node_modules/@types/d3-selection/index.d.ts(17,24): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(17,49): kesalahan TS2304: Tidak dapat menemukan nama 'Dokumen'.
../node_modules/@types/d3-selection/index.d.ts(17,60): kesalahan TS2304: Tidak dapat menemukan nama 'Jendela'.
../node_modules/@types/d3-selection/index.d.ts(34,20): kesalahan TS2304: Tidak dapat menemukan nama 'Dokumen'.
../node_modules/@types/d3-selection/index.d.ts(36,27): kesalahan TS2304: Tidak dapat menemukan nama 'Node'.
../node_modules/@types/d3-selection/index.d.ts(36,34): kesalahan TS2304: Tidak dapat menemukan nama 'Node'.
../node_modules/@types/d3-selection/index.d.ts(37,28): kesalahan TS2304: Tidak dapat menemukan nama 'Node'.
../node_modules/@types/d3-selection/index.d.ts(37,44): kesalahan TS2304: Tidak dapat menemukan nama 'Node'.
../node_modules/@types/d3-selection/index.d.ts(37,51): kesalahan TS2304: Tidak dapat menemukan nama 'Node'.
../node_modules/@types/d3-selection/index.d.ts(38,39): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(39,42): kesalahan TS2304: Tidak dapat menemukan nama 'NodeListOf'.
../node_modules/@types/d3-selection/index.d.ts(39,53): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(45,32): kesalahan TS2304: Tidak dapat menemukan nama 'HTMLElement'.
../node_modules/@types/d3-selection/index.d.ts(45,46): kesalahan TS2304: Tidak dapat menemukan nama 'SVGSVGElement'.
../node_modules/@types/d3-selection/index.d.ts(45,62): kesalahan TS2304: Tidak dapat menemukan nama 'SVGGElement'.
../node_modules/@types/d3-selection/index.d.ts(110.110): kesalahan TS2304: Tidak dapat menemukan nama 'HTMLElement'.
../node_modules/@types/d3-selection/index.d.ts(142.113): kesalahan TS2304: Tidak dapat menemukan nama 'HTMLElement'.
../node_modules/@types/d3-selection/index.d.ts(873,43): kesalahan TS2304: Tidak dapat menemukan nama 'HTMLElement'.
../node_modules/@types/d3-selection/index.d.ts (977,61): kesalahan TS2304: Tidak dapat menemukan nama 'TouchList'.
../node_modules/@types/d3-selection/index.d.ts (989,64): kesalahan TS2304: Tidak dapat menemukan nama 'TouchList'.
../node_modules/@types/d3-selection/index.d.ts(1013,29): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(1025,15): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(1033,18): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(1040,15): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(1040,35): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(1108,33): kesalahan TS2304: Tidak dapat menemukan nama 'Jendela'.
../node_modules/@types/d3-selection/index.d.ts(1108,42): kesalahan TS2304: Tidak dapat menemukan nama 'Dokumen'.
../node_modules/@types/d3-selection/index.d.ts(1108,53): error TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(1108,63): kesalahan TS2304: Tidak dapat menemukan nama 'Jendela'.
../node_modules/@types/d3-selection/index.d.ts(1122,44): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(1133,45): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(1154,46): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(1163,49): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/d3-selection/index.d.ts(1163,97): kesalahan TS2304: Tidak dapat menemukan nama 'NodeListOf'.
../node_modules/@types/d3-shape/index.d.ts(304,16): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(312,22): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(757,16): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(765,22): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts (935,16): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(943,22): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts (1230,16): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(1238,22): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(1536,16): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(1544,22): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(1650,15): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts (1686,15): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(2016,16): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts (2024,22): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(2196,16): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(2204,22): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(2273,19): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasPathMethods'.
../node_modules/@types/d3-shape/index.d.ts(2358,16): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(2366,22): kesalahan TS2304: Tidak dapat menemukan nama 'CanvasRenderingContext2D'.
../node_modules/@types/d3-transition/index.d.ts(572,65): error TS2304: Tidak dapat menemukan nama 'HTMLElement'.
../node_modules/@types/d3-transition/index.d.ts(583.104): kesalahan TS2304: Tidak dapat menemukan nama 'HTMLElement'.
../node_modules/@types/d3-zoom/index.d.ts (20,37): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(33,29): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(37,19): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(54,28): kesalahan TS2304: Tidak dapat menemukan nama 'Node'.
../node_modules/@types/googlemaps/index.d.ts(788,30): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(799,36): error TS2304: Tidak dapat menemukan nama 'Node'.
../node_modules/@types/googlemaps/index.d.ts (812,26): kesalahan TS2304: Tidak dapat menemukan nama 'Node'.
../node_modules/@types/googlemaps/index.d.ts(1136,20): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1137,22): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1138,18): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1139,22): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1140,23): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1141,23): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1142,29): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1143,24): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1220,21): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1225,25): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1236,17): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts (1653,32): kesalahan TS2304: Tidak dapat menemukan nama 'Node'.
../node_modules/@types/googlemaps/index.d.ts (1668,64): kesalahan TS2304: Tidak dapat menemukan nama 'Dokumen'.
../node_modules/@types/googlemaps/index.d.ts(1668,75): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts (1669,27): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts (1692,64): kesalahan TS2304: Tidak dapat menemukan nama 'Dokumen'.
../node_modules/@types/googlemaps/index.d.ts (1692,75): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts (1693,27): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1709,64): kesalahan TS2304: Tidak dapat menemukan nama 'Dokumen'.
../node_modules/@types/googlemaps/index.d.ts(1709,75): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1710,27): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1941,32): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(1942,28): kesalahan TS2304: Tidak dapat menemukan nama 'Node'.
../node_modules/@types/googlemaps/index.d.ts(2394,36): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(2398,29): kesalahan TS2304: Tidak dapat menemukan nama 'Elemen'.
../node_modules/@types/googlemaps/index.d.ts(2455,37): kesalahan TS2304: Tidak dapat menemukan nama 'HTMLInputElement'.
../node_modules/@types/googlemaps/index.d.ts(2616,40): kesalahan TS2304: Tidak dapat menemukan nama 'HTMLDivElement'.
../node_modules/@types/googlemaps/index.d.ts(2663,37): kesalahan TS2304: Tidak dapat menemukan nama 'HTMLInputElement'.
npm ERR! kode ELIFECYCLE
npm ERR! salah 2
npm ERR! fungsi@ build: tsc
npm ERR! Keluar dari status 2
npm ERR!
npm ERR! Gagal pada skrip functions@ build.
npm ERR! Ini mungkin bukan masalah dengan npm. Kemungkinan ada output logging tambahan di atas.

npm ERR! Log lengkap dari proses ini dapat ditemukan di:
npm ERR! [JALAN DI MESIN LOKAL]\AppData\Roaming\npm-cache_logs\2018-04-19T16_10_21_812Z-debug.log

Kesalahan: kesalahan pra-penerapan fungsi: Perintah diakhiri dengan kode keluar bukan nol2```

Komentar yang paling membantu

@laurenzlong Terima kasih lagi! Itu membantu saya melacak apa yang perlu saya lakukan untuk menyelesaikan masalah saya.

Untuk siapa pun yang mengalami masalah ini - saya bisa mendapatkan fungsi untuk membangun dengan sukses dengan memodifikasi fungsi membangun skrip untuk menggunakan tsc --skipLibCheck alih-alih tsc dari dalam functions/package.json . Ini memberitahu kompiler TypeScript untuk melewati pemeriksaan tipe semua file deklarasi.

Semua 21 komentar

Jika Anda menjalankan npm run build di dalam folder fungsi Anda, apakah itu berhasil?

Jika Anda menjalankan npm run build di dalam folder fungsi Anda, apakah itu berhasil?

Itu tidak. Kesalahan yang sama.

Maka itu ada hubungannya dengan pengaturan TypeScript Anda atau bagaimana Anda mengimpor modul di dalam kode Anda. Ini bukan bug dengan firebase-tools.

@laurenzlong Ok, terima kasih telah meluangkan waktu untuk membantu saya dalam hal ini. Saya kira saya bertanya-tanya mengapa fungsi cloud firebase bahkan peduli dengan paket mana yang saya sertakan dalam aplikasi saya. Saya telah membuat demonstrasi sederhana tentang kesalahan yang saya terima. Fungsi cloud dibangun dengan baik hingga saya menyertakan beberapa definisi tipe seperti @types/googlemaps . Saya akan berpikir bahwa fungsi cloud harus dibangun terlepas dari paket definisi tipe apa pun yang saya sertakan di tingkat root demonstrasi ini.

"npm run build" menggunakan "tsc" biasa untuk membuat file Anda. Ini tidak ada hubungannya dengan Firebase atau Cloud Functions.

@laurenzlong Terima kasih lagi! Itu membantu saya melacak apa yang perlu saya lakukan untuk menyelesaikan masalah saya.

Untuk siapa pun yang mengalami masalah ini - saya bisa mendapatkan fungsi untuk membangun dengan sukses dengan memodifikasi fungsi membangun skrip untuk menggunakan tsc --skipLibCheck alih-alih tsc dari dalam functions/package.json . Ini memberitahu kompiler TypeScript untuk melewati pemeriksaan tipe semua file deklarasi.

@dylanjmcdonald atau taruh di file tsconfig.json:

    // "isolatedModules": true,               /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */

    "skipLibCheck": true,
    /* Strict Type-Checking Options */
    "strict": true,

Terima kasih atas perhatiannya, btw 👍

Tetapi bagaimana jika Anda tidak ingin melewatkan pemeriksaan deklarasi? Di salah satu fungsi cloud saya, saya menggunakan Objects.entries() yaitu es2017. Saya mengaturnya di tsconfig.json tetapi karena melewatkannya, itu menimbulkan kesalahan ketika fungsi dijalankan. Ada cara lain untuk mengatasi ini?

Saya memperbaiki masalah yang sama dengan menambahkan:
"typeRoots": [
"./functions/node_modules/@types"
]
ke tsconfig.json di folder fungsi

Ini terjadi dengan TypeScript yang dibuat secara otomatis ketika fungsi diinisialisasi untuk saya.

Hanya kode dan impor yang dibuat secara otomatis yang persis seperti dalam contoh.

Tampaknya karena tsc akan mencari jenis pohon proses Anda dan mencoba untuk mengetik , @types tetapi tidak ada yang lain sehingga semuanya menjadi

Saya pikir solusi paling tepat untuk ini adalah melakukan seperti yang disarankan Gongevangen. tambahkan "node_modules/@types" ke typeRoots sehingga algoritme resolusi modul tidak menjadi gila.

Saya mendapat masalah yang sama berkat @dylanjmcdonald Saya telah menyelesaikannya dengan menggunakan tsc --skipLibCheck

@dylanjmcdonald tsc --skipLibCheck di ./functions/package.json bekerja untuk saya, terima kasih!

Saya memperbaikinya dengan menambahkan "dom" ke compilerOptions.lib di ./functions/tsconfig.json .

{
  "compilerOptions": {
    "lib": ["es6", "dom"],
    "module": "commonjs",
    "noImplicitReturns": true,
    "outDir": "lib",
    "sourceMap": true,
    "target": "es6"
  },
  "compileOnSave": true,
  "include": [
    "src"
  ]
}

Ini harus bekerja juga. Saya menggunakan solusi @yamitzky dan bekerja untuk penyebaran fungsi. Di bawah ini dapat digunakan sesuai kode pengembang google yang saya lihat.
{ "compilerOptions": { "lib": ["es6"], "module": "commonjs", "noImplicitReturns": true, "outDir": "lib", "sourceMap": true, "target": "es6", "skipLibCheck": true, "typeRoots": ["./functions/node_modules/@types"] }, "compileOnSave": true, "include": [ "src" ] }

Sangat bagus bahwa ada solusi untuk ini, tetapi salah satu solusi ini harus benar-benar ada di .tsconfig dihasilkan oleh firebase init . Adakah yang tahu bagaimana kami bisa membuka kembali masalah ini?

Anda dapat membuka kembali masalah ini, tetapi saya dapat memberi tahu Anda bahwa kami mungkin tidak akan menambahkan dom ke properti lib dari template tsconfig.json . Ini dimaksudkan sebagai minimum untuk mengeluarkan pengembang dan default itu tidak perlu dom . Jika Anda merasa sangat sebaliknya, silakan buka pull request pada repo ini dengan mengubah template, tapi saya rasa itu bukan perubahan yang akan kami buat.

Terima kasih tuan

Pastikan file .ts Anda memiliki nama yang sama dengan .js di lib dan sertakan juga di package.json

Hanya untuk memperjelas solusi @gongevangen berfungsi tetapi pastikan untuk menempatkan kunci "typeRoots" di dalam "compilerOptions" :

{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "outDir": "lib",
    "sourceMap": true,
    "strict": true,
    "target": "es2017",
    "typeRoots": [
      "./functions/node_modules/@types"
    ],
  },
  "compileOnSave": true,
  "include": [
    "src"
  ],
}

Agak bingung mengapa ini tidak disertakan dalam boilerplate...atau bahkan disebutkan di mana pun di salah satu tuts Firebase.

Saya setuju dengan @evanb2 - ini hanya menghabiskan waktu satu jam! Tentunya perlu disebutkan setidaknya di sini: https://firebase.google.com/docs/functions/typescript jika tidak memasukkannya ke dalam firebase init?

Tuhan memberkati Anda Evanb2! :)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat