virtual icon indicating copy to clipboard operation
virtual copied to clipboard

Module parse failed

Open manuelMoraYolo opened this issue 1 year ago • 4 comments

Describe the bug

./node_modules/@tanstack/virtual-core/dist/esm/index.js 254:22
Module parse failed: Unexpected token (254:22)
File was processed with these loaders:
 * ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|         startIndex,
|         endIndex
>       } = this.range ?? {
|         startIndex: void 0,
|         endIndex: void 0

Hi guys, can you help me with this problem? I already use:

"@babel/plugin-proposal-nullish-coalescing-operator"
"@babel/plugin-proposal-optional-chaining"

This error happen only when i use useVirtualizer()

Your minimal, reproducible example

Steps to reproduce

  • Install the library
  • Try to use useVirtualizer()

Expected behavior

It should work without problems

How often does this bug happen?

Every time

Screenshots or Videos

No response

Platform

macOS

tanstack-virtual version

^3.9.0

TypeScript version

^4.7.4

Additional context

No response

Terms & Code of Conduct

  • [X] I agree to follow this project's Code of Conduct
  • [X] I understand that if my bug cannot be reliable reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.

manuelMoraYolo avatar Aug 16 '24 01:08 manuelMoraYolo

meet the same issue, any plan to fix it?

kadinwu avatar Mar 04 '25 08:03 kadinwu

yes me too, it should be a transpiler option to provide compatibility with older ES versions, right now I am looking for another version of tanstack without this syntax. BUT!! in my project (react 17.. and react-scripts 4.0.3, sorry) I did resolve the syntax issue connecting those babels you mentioned with react rewired

 // pkg.json
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
"babel-plugin-transform-imports": "^2.0.0",
"customize-cra": "^1.0.0",
"react-app-rewired": "^2.2.1",

then rewired allows you to add a config-overrides.js file

// config-overrides.js
const { override, addBabelPlugins, babelInclude } = require('customize-cra');
const path = require('path');

module.exports = override(
  ...addBabelPlugins(
    '@babel/plugin-proposal-nullish-coalescing-operator',
    ['@babel/plugin-proposal-optional-chaining', { loose: false }]
  ),
 babelInclude([
    path.resolve('src'),
    path.resolve('node_modules/@tanstack')
  ])
);

also you have to change your scripts (every place you have react-scripts it has to be replaced with react-app-rewired (in package.json again) : "test": "react-app-rewired test", "start": "react-app-rewired start"

as this involves many changes in the chore of the project I dont like it much, would like to find a better solution

hope it hepls

Guiw5 avatar May 01 '25 17:05 Guiw5

Same issue, finally works with:

{
    test: path.join(__dirname, 'node_modules', '@tanstack', 'virtual-core'),
    use: {
        loader: 'babel-loader',
        options: {
            plugins: ['@babel/plugin-proposal-nullish-coalescing-operator'],
        },
    },
},

in webpack.config.js module rules

wkchu-hket avatar Jun 03 '25 07:06 wkchu-hket

I did not find a clear browser compatibility version on the official website, could the official have the opportunity to supplement this in the documentation?

PerryFinn avatar Jul 01 '25 06:07 PerryFinn