Definitelytyped: webpack-env.d.ts tidak dikompilasi dengan node.d.ts

Dibuat pada 9 Feb 2016  ·  6Komentar  ·  Sumber: DefinitelyTyped/DefinitelyTyped

Sebelum Anda bertanya: Ya, saya mencari - dan menemukan #6334 - meskipun ini tidak mengatasi masalah saya.

Saya sedang menulis aplikasi web yang menggunakan Webpack. Akibatnya, saya membutuhkan akses ke webpack-env.d.ts di front end, tetapi saya juga tertarik untuk menggunakan modul url dari Node (untuk url.parse ). Jika saya memerlukan webpack-env.d.ts dan node.d.ts dalam file referensi yang sama, dapat diduga itu rusak karena Node mendefinisikan ulang require . IOW, saya perlu akses ke node.d.ts url modul require definisi

Saya bisa menyiasatinya dengan menggunakan const url: any = require('url') , meskipun ini tidak ideal dan saya ingin mengetik untuk modul ini. Pilihan lain adalah membagi node.d.ts menjadi modul penyusunnya dan meminta master node.d.ts memerlukan setiap modul individual, meskipun saya tidak yakin apakah ini akan merusak apa pun dari banyak orang yang mengandalkan ini File deklarasi TypeScript - dan saya tidak ingin meretasnya bersama-sama secara lokal.

Ada saran?

Komentar yang paling membantu

tetapi bagaimana jika @types/node adalah ketergantungan dari ketergantungan lain (misalnya fs-extra , jsdom , shelljs , tape )?
juga akhirnya menghapus webpack-env dan

if ((module as any).hot) {
...

😢

Semua 6 komentar

Nah, secara teknis Anda masih belum berada di lingkungan node dan tidak benar untuk memasukkan seluruh file node.d.ts. Anda menggunakan paket npm yang bertindak sama dengan "url" node, tetapi di lingkungan browser. Apa yang dapat Anda lakukan adalah mengekstrak pengetikan tersebut dari node.d.ts dan memiliki url.d.ts terpisah, seperti yang telah Anda sarankan. Memisahkan node.d.ts menjadi modul yang lebih kecil mungkin tidak sesuai dengan setiap kebutuhan, karena tanda tangan mungkin berbeda karena perbedaan lingkungan (Buffer vs Array) atau implementasi. Saya akan menyarankan pengetikan independen untuk paket "url" ini.

Saya mengalami masalah yang sama di mana saya menggunakan include typings/index.ts di tsconfig.json untuk memasukkan semua pengetikan. Saat menambahkan webpack-env.d.ts dan node , compiler TypeScript jelas mengeluh. Apakah ada cara untuk mengatasi ini?

test_index.ts(1,28): error TS2339: Property 'context' does not exist on type 'NodeRequire'.

Cara saya "memecahkannya" adalah dengan membuat file pengetikan terpisah untuk modul khusus simpul yang ingin saya gunakan. Sedikit hack, sayangnya.

Saya akhirnya menghapus webpack-env sama sekali karena saya hanya perlu satu mengetik di seluruh proyek saya untuk itu. Semoga tetap seperti itu. Saya mencoba solusi Anda tetapi saya benar-benar tidak suka mencemari file saya dengan referensi sebanyak mungkin. Terima kasih balasannya

Saurabh Sharma / Rekayasa Kualitas
[email protected] / (925)-878-5722
Yammer, Microsoft
http://www.foklepoint.com

Pada 14 Agustus 2016, pukul 07:08, Dan [email protected] menulis:

Cara saya "memecahkannya" adalah dengan membuat file pengetikan terpisah untuk modul khusus simpul yang ingin saya gunakan. Sedikit hack, sayangnya.


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub, atau matikan utasnya.

Tentu, saya juga tidak :( Tapi sayangnya saya membutuhkan modul itu. @foklepoint

tetapi bagaimana jika @types/node adalah ketergantungan dari ketergantungan lain (misalnya fs-extra , jsdom , shelljs , tape )?
juga akhirnya menghapus webpack-env dan

if ((module as any).hot) {
...

😢

Apakah halaman ini membantu?
0 / 5 - 0 peringkat