Rumah >hujung hadapan web >tutorial js >Ts mengalihkan penyataan laluan mutlak dalam pakej npm anda
Hari ini saya menghadapi situasi TypeScript yang rumit yang berkaitan dengan perpustakaan, fail .d.ts dan laluan relatif.
Kami menerbitkan perpustakaan Komponen React (termasuk jenis) kepada npm.
Projek hadapan kami menyertakan perpustakaan ini sebagai mana-mana pakej npm yang lain.
Biasanya projek bahagian hadapan kami mempunyai dalam tsconfig.json mereka pilihan "skipLibCheck: true"
Salah satu apl kami tidak mempunyai bendera ini (secara lalai bendera ini dilumpuhkan dan sejujurnya saya tidak faham siapa yang mahu kelakuan ini)
Perkaranya, bendera tidak ada di sana dan kami mendapat ralat-ts:
Dan ini adalah ralat yang adil: fail yang diedarkan daripada perpustakaan kami cuba mengimport sesuatu daripada laluan mutlak
import { Foo } from 'absolutePath';
baris ini masuk akal dalam perpustakaan itu sendiri tetapi tidak dalam node_modules/bla/bla/bla
Ts betul: adakah absolutePath ini ada bersama kami?
Menggali dalam folder dist/ saya menyemak bahawa beberapa fail komponen yang terhasil ditranspilkan dengan betul menggunakan laluan relatif:
SAAT PANIK: Mengapakah sesetengah fail .d.ts yang ditranspilkan menggunakan laluan mutlak manakala yang lain menggunakan laluan relatif ????
Beberapa siaran Stack Overflow dan isu, utas dan perbincangan di GitHub kemudian (saya akan melangkau perkara yang tidak berjaya)
Saya perasan amaran jemputan ini dalam masa binaan:
Export of «module» was reexported through «file» while both modules are dependencies of each other and will end up in different chunks by Rollup.
jadi... Kebergantungan Pekeliling memang begitu.
Saya menyelesaikan kebergantungan bulat dalam penyata import kami dan semuanya baik-baik saja sekarang.
Jika anda menghadapi masalah dengan Ts ? mengalihkan penyataan laluan mutlak dan bukannya laluan relatif dalam pustaka anda,
yang mengakibatkan ralat Ts dalam apl pelanggan, ia mungkin disebabkan oleh pergantungan bulat dalam kod sumber anda.
--
terima kasih kerana membaca
Benang Asal Saya di X
Atas ialah kandungan terperinci Ts mengalihkan penyataan laluan mutlak dalam pakej npm anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!