callstack/linaria

Odd `Cannot use import statement outside a module` error

nstepien opened this issue · 3 comments

Environment

  • Linaria version: 4.2.0
  • Bundler (+ version): rollup@2.79.0
  • Node.js version: 18.8.0
  • OS: Windows (local) and Linux (CI)

Description

Linaria + rollup can lead to bundle failure.

> rollup --config --no-stdin


./src/index.ts → ./lib/bundle.js, ./lib/bundle.cjs...
[!] (plugin linaria) EvalError: Cannot use import statement outside a module in
| D:\repos\react-data-grid\src\style\cell.ts
| D:\repos\react-data-grid\src\style\index.ts
| D:\repos\react-data-grid\src\SummaryRow.tsx

src/SummaryRow.tsx
D:\repos\react-data-grid\node_modules\@linaria\babel-preset\lib\module.js:392
        throw new EvalError(`${e.message} in${callstack.join('\n| ')}\n`);
        ^

EvalError: Cannot use import statement outside a module in
| D:\repos\react-data-grid\src\style\cell.ts
| D:\repos\react-data-grid\src\style\index.ts
| D:\repos\react-data-grid\src\SummaryRow.tsx

    at D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\module.ts:472:15
    at Array.forEach (<anonymous>)
    at Module.forEach [as evaluate] (D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\module.ts:434:10)
    at evaluate (D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\module.ts:392:13)
    at D:\repos\react-data-grid\src\style\index.ts:7:13
    at D:\repos\react-data-grid\src\style\index.ts:45:3
    at Script.runInContext (node:vm:141:12)
    at runInContext (D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\module.ts:457:16)
    at Array.forEach (<anonymous>)
    at Module.forEach [as evaluate] (D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\module.ts:434:10)
    at evaluate (D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\module.ts:392:13)
    at D:\repos\react-data-grid\src\SummaryRow.tsx:3:14
    at D:\repos\react-data-grid\src\SummaryRow.tsx:22:3
    at Script.runInContext (node:vm:141:12)
    at runInContext (D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\module.ts:457:16)
    at Array.forEach (<anonymous>)
    at Module.forEach [as evaluate] (D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\module.ts:434:10)
    at evaluate (D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\evaluators\index.ts:28:5)
    at evalStage (D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\transform-stages\2-eval.ts:32:21)
    at syncStages (D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\transform.ts:50:27)
    at syncStages (D:\repos\react-data-grid\node_modules\@linaria\babel-preset\src\transform.ts:200:10)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at Object.transform (D:\repos\react-data-grid\node_modules\@linaria\rollup\src\index.ts:87:22)
    at transform (D:\repos\react-data-grid\node_modules\rollup\dist\shared\rollup.js:22066:16)
    at ModuleLoader.addModuleSource (D:\repos\react-data-grid\node_modules\rollup\dist\shared\rollup.js:22291:30) 

Reproducible Demo

  1. Clone https://github.com/adazzle/react-data-grid/commits/linaria-1054 (checkout the linaria-1054 branch)
  2. Install dependencies with npm i
  3. npm run build will fail with the error above

I've updated the description above with a consistently failing repro.

Anber commented

Hi @nstepien!

Thank you for your report. I fixed it in #1086 and will release in a couple of days.

Thank you very much!