Webpack cant derleme ts 3.7 (İsteğe Bağlı Zincirleme, Boş Değer Birleştirme)


21

typescript 3.7İsteğe Bağlı Zincirleme, Nullish Coalescing gibi özellikleri kullanmaya çalışıyorum. Ancak webpacktranspaling sırasında bana bir hata veriyor.

app: Module parse failed: Unexpected token (50:40)
app: File was processed with these loaders:
app:  * ../../../node_modules/ts-loader/index.js
app: You may need an additional loader to handle the result of these loaders.
app: | export const Layout = (props) => {
app: |     const regionsResults = useQuery(regionsQuery, { fetchPolicy: 'cache-first' });
app: >     const regions = regionsResults.data?.regions ?? [];
app: |     const userItem = useQuery(usersProfileQuery, { fetchPolicy: 'cache-first' });
app: |     const handleOnClick = (selected) => props.history.push(selected.key);
``

packages.jsondosyanızı gönderebilir misiniz ?
Carlos Crespo

Yanıtlar:


30

: Hedefi değişti esnextiçin es2018de tsconfig.jsondosyaya. Şimdi çalışıyor.


6
Bu benim için işe yaramadı. Webpack yine aynı hatayla başarısız oluyor.
Alejandro Corredor

"foo".matchAll(/o+/g)Bir ES2020 özelliği olduğu için kullanıyorsanız çalışmıyor.
Jason Schilling

Bu çok saçma, ama gerçekten işe yarıyor! Nasıl olduğunu bile anlayamıyorum ... İsteğe bağlı değişim sadece ES2020'den beri bize getirildi. ES2018 ve ES2019 her ikisi de düzgün çalışıyor, btw ES2020 hala çöküyor.
Max Travis

1

Kodu dönüştürmek için hangi yükleyiciyi kullandığınıza bağlı olarak, çeşitli seçenekler vardır

İçin ts-loader, daktilodan çıktının Webpack tarafından anlaşılabilir olduğundan emin olmanız gerekir. Bu ayarlayarak elde edilebilir targetiçin ES2018de tsconfig.json.

Çünkü babel-loaderbabil'in

  • @babel/plugin-proposal-nullish-coalescing-operator

Eklenti. Eğer kullanıyorsanız Not olduğunu preset-env, bu veya bağlı bu eklentiyi yüklemek olmayabilir sizin targetsveya browserlist(yani hedef env bu dil özellikleri için destek varsa yüklenmeyecektir), bu durumda tek yol onun dahil edilmesini garanti etmek pluginsdizisinde manuel olarak belirterek babel.config.js,

  plugins: [
    '@babel/plugin-proposal-nullish-coalescing-operator',
  ],

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.