Webpack ไม่สามารถคอมไพล์ ts 3.7 (การเชื่อมต่อเสริม, Nullish Coalescing)


21

ฉันพยายามใช้typescript 3.7คุณสมบัติต่างๆเช่นการเชื่อมต่อเสริม, Nullish Coalescing แต่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ไฟล์ของคุณ?
Carlos Crespo

คำตอบ:


30

ฉันเปลี่ยนเป้าหมาย: esnextเป็นes2018ในtsconfig.jsonไฟล์ ตอนนี้มันใช้งานได้


6
สิ่งนี้ไม่ได้ผลสำหรับฉัน Webpack ยังคงล้มเหลวด้วยข้อผิดพลาดเดียวกัน
Alejandro Corredor

ไม่ทำงานหากคุณใช้"foo".matchAll(/o+/g)เพราะเป็นคุณสมบัติ ES2020
Jason Schilling

มันไร้สาระ แต่มันได้ผลจริงๆ! ฉันยังไม่สามารถเข้าใจได้ว่า ... ช่องทางเลือกที่นำมาให้เราตั้งแต่ ES2020 เท่านั้น ES2018 และ ES2019 ทำงานได้อย่างถูกต้อง btw ES2020 ยังทำงานล้มเหลว
Max Travis

1

ขึ้นอยู่กับโหลดเดอร์ที่คุณใช้เพื่อ transiple รหัสมีหลายตัวเลือก

สำหรับts-loaderคุณต้องทำให้แน่ใจว่าผลลัพธ์จาก typescript นั้นเข้าใจได้โดย Webpack นี้สามารถทำได้โดยการตั้งค่าtargetไปในES2018tsconfig.json

สำหรับbabel-loaderคุณจะต้องตรวจสอบให้แน่ใจว่า babel โหลด

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

เสียบเข้าไป. โปรดทราบว่าหากคุณกำลังใช้preset-envมันอาจหรือไม่สามารถโหลดปลั๊กอินนี้ขึ้นอยู่กับคุณtargetsหรือbrowserlist(เช่นจะไม่ถูกโหลดถ้า env เป้าหมายมีการสนับสนุนสำหรับคุณสมบัติภาษาเหล่านี้) ซึ่งในกรณีนี้วิธีเดียวที่จะรับประกันการรวม คือโดยการระบุด้วยตนเองในpluginsอาร์เรย์babel.config.js,

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.