वेबपैक कैंट कंपाइल ts 3.7 (वैकल्पिक चेनिंग, न्यूलल कोलेसिंग)


21

मैं typescript 3.7ऑप्शनल चेनिंग, न्यूलिश कोलेसिंग जैसी सुविधाओं का उपयोग करने की कोशिश करता हूं । लेकिन webpackट्रांसप्लान्ट करते समय मुझे एक त्रुटि मिलती है।

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.jsonफ़ाइल पोस्ट कर सकते हैं ?
कार्लोस क्रेस्पो

जवाबों:


30

: मैं लक्ष्य बदल esnextकरने es2018में tsconfig.jsonफ़ाइल। अब यह काम कर रहा है।


6
इसने मेरे लिए काम नहीं किया। वेबपैक अभी भी उसी त्रुटि के साथ विफल है।
अलेजांद्रो कोरिडोर

काम नहीं करता है यदि आप "foo".matchAll(/o+/g)कारण का उपयोग कर रहे हैं तो यह एक ES2020 सुविधा है।
जेसन शिलिंग

यह हास्यास्पद है, लेकिन यह वास्तव में काम करता है! मैं यह भी पता नहीं लगा सकता कि कैसे ... वैकल्पिक जप हमारे लिए केवल ES2020 के बाद से लाया गया। ES2018 और ES2019 दोनों ठीक से काम कर रहे हैं, btw ES2020 अभी भी दुर्घटनाग्रस्त हो रहा है।
मैक्स ट्रैविस

1

कोड लोड करने के लिए आप किस लोडर का उपयोग कर रहे हैं, इसके आधार पर, कई विकल्प उपलब्ध हैं

इसके लिए ts-loader, आपको यह सुनिश्चित करने की आवश्यकता है कि टाइपस्क्रिप्ट से आउटपुट वेबपैक द्वारा समझा जा सकता है। इस सेटिंग के द्वारा प्राप्त किया जा सकता targetकरने के लिए ES2018में tsconfig.json

इसके लिए babel-loader, आपको यह सुनिश्चित करने की आवश्यकता होगी कि बेबल लोड हो रहा है

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

लगाना। ध्यान दें कि यदि आप उपयोग कर रहे हैं preset-env, तो यह आपके targetsया उसके आधार पर इस प्लगइन को लोड नहीं कर सकता है browserlist(यानी, अगर इन भाषा सुविधाओं के लिए लक्ष्य env का समर्थन है तो लोड नहीं किया जाएगा), जिस स्थिति में इसके समावेश की गारंटी देने का एकमात्र तरीका है pluginsसरणी में इसे मैन्युअल रूप से निर्दिष्ट करके babel.config.js,

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

-2

यदि आप बनाम कोड का उपयोग कर रहे हैं, तो शायद आपको स्थानीय टाइपस्क्रिप्ट संस्करण बनाम कोड का उपयोग करना चाहिए।

Visual Studio कोड का उपयोग करके टाइपस्क्रिप्ट संस्करण क्या है? इसे कैसे अपडेट करें?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.