reactjs - İçe aktarma hatası denendi: 'TextDecoder', '@polkadot/x-textdecoder' paketinden ihraç edilmiyor
Aşağıdaki Polkadot paketlerini kurdum.
"@polkadot/api": "6.10.1",
"@polkadot/extension-dapp": "0.41.1",
"@polkadot/hw-ledger": "8.2.2",
"@polkadot/util-crypto": "8.0.2",
“yarn start” çalıştırıldığında, bu hatayı aldım.
./node_modules/@polkadot/util/u8a/toString.js
İçe aktarma hatası denemesi: 'TextDecoder', '@polkadot/x-textdecoder'dan ihraç edilmedi.
Bunu nasıl düzeltebilirim?
Cevap #1
Bir süre önce Jest testlerini çalıştırırken benzer bir sorun yaşamıştık, bu yüzden geçici bir çözüm olarak TextEncoder'ı test ortamının global kapsamına eklemekle yetindik.
// script.js
import { TextEncoder, TextDecoder } from 'util';
import Environment from 'jest-environment-jsdom';
/**
* A custom environment to set the TextEncoder that is required.
*/
export default class CustomTestEnvironment extends Environment {
async setup() {
await super.setup();
if (typeof this.global.TextEncoder === 'undefined') {
this.global.TextEncoder = TextEncoder;
this.global.TextDecoder = TextDecoder;
}
}
}
Yukarıdaki kod jest yapılandırmasında test ortamı olarak şöyle yüklendi:
testEnvironment: '<path to script.js>',
Cevap #2
Ben de aynı sorunu yaşıyorum. Bunlar benim paketlerim ve sürümüm:
"@polkadot/api": "7.15.1",
"@polkadot/extension-dapp": "0.42.10",
"@polkadot/keyring": "8.7.1",
"@polkadot/networks": "8.7.1",
"@polkadot/typegen": "^7.15.1",
"@polkadot/types": "7.15.1",
"@polkadot/ui-keyring": "1.4.1",
"@polkadot/ui-settings": "1.4.1",
"@polkadot/util": "8.7.1",
"@polkadot/util-crypto": "8.7.1",
Güncelleme :
Sorunumu create-react-app ve dolayısıyla webpack'i terk ederek çözmek zorunda kaldım. Bu rehberi kullanarak vite'e geçiş yaptım. Sadece yaklaşık 20 dakika sürdü ve her şey çalıştı.
