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ı.

İlgili makaleler