Skip to content

Build fails due to tsc compiler errors #5451

@iSuslov

Description

@iSuslov

Details

  • Typescript version: 5.5.4
  • Node version: 24.0.0

Steps to reproduce

  1. Clone this repo
  2. npm i
  3. npm run package
% npm i                       
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm warn deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin.
npm warn deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm warn deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.

added 33 packages, removed 13 packages, changed 635 packages, and audited 762 packages in 44s

148 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
% npm run package

> @xterm/xterm@5.5.0 prepackage
> npm run build


> @xterm/xterm@5.5.0 build
> npm run tsc


> @xterm/xterm@5.5.0 tsc
> tsc -b ./tsconfig.all.json

node_modules/@types/glob/index.d.ts:29:42 - error TS2694: Namespace '"/Users/user/xterm.js/node_modules/minimatch/dist/cjs/index"' has no exported member 'IOptions'.

29     interface IOptions extends minimatch.IOptions {
                                            ~~~~~~~~

node_modules/@types/glob/index.d.ts:74:30 - error TS2724: '"/Users/user/xterm.js/node_modules/minimatch/dist/cjs/index"' has no exported member named 'IMinimatch'. Did you mean 'Minimatch'?

74         minimatch: minimatch.IMinimatch;
                                ~~~~~~~~~~


Found 2 errors.

From what I can tell right now: one of the building steps is to compile to 'commonjs' target, but tsconfig-base.json doesn't have moduleResolution set, so tsc uses node.

{
"compilerOptions": {
"module": "commonjs",
"target": "es2021",
"rootDir": ".",
"sourceMap": true,
"removeComments": true,
"pretty": true,
"incremental": true,
"experimentalDecorators": true
}
}

Probably minimatch has wrong types for commonjs target. It is pulled by glob dependency. Also:

% npm outdated
Package                                Current        Wanted   Latest  Location                                       Depended by
@stylistic/eslint-plugin                2.13.0        2.13.0    5.6.1  node_modules/@stylistic/eslint-plugin          xterm.js
@types/chai                             4.3.20        4.3.20    5.2.3  node_modules/@types/chai                       xterm.js
@types/express                         4.17.25       4.17.25    5.0.6  node_modules/@types/express                    xterm.js
@types/glob                              7.2.0         7.2.0    8.1.0  node_modules/@types/glob                       xterm.js
@types/jsdom                           16.2.15       16.2.15   27.0.0  node_modules/@types/jsdom                      xterm.js
@types/mocha                             9.1.1         9.1.1  10.0.10  node_modules/@types/mocha                      xterm.js
@types/node                          18.19.130     18.19.130  24.10.1  node_modules/@types/node                       xterm.js
@types/sinon                             5.0.7         5.0.7   21.0.0  node_modules/@types/sinon                      addon-ligatures@npm:@xterm/addon-ligatures@0.9.0
@types/trusted-types                     1.0.6         1.0.6    2.0.7  node_modules/@types/trusted-types              xterm.js
@typescript-eslint/eslint-plugin        6.21.0        6.21.0   8.48.1  node_modules/@typescript-eslint/eslint-plugin  xterm.js
@typescript-eslint/parser               6.21.0        6.21.0   8.48.1  node_modules/@typescript-eslint/parser         xterm.js
chai                                     4.5.0         4.5.0    6.2.1  node_modules/chai                              xterm.js
cross-env                                7.0.3         7.0.3   10.1.0  node_modules/cross-env                         xterm.js
esbuild                                0.25.12       0.25.12   0.27.1  node_modules/esbuild                           xterm.js
eslint                                  8.57.1        8.57.1   9.39.1  node_modules/eslint                            xterm.js
eslint-plugin-jsdoc                    46.10.1       46.10.1   61.4.1  node_modules/eslint-plugin-jsdoc               xterm.js
express                                 4.22.1        4.22.1    5.2.1  node_modules/express                           xterm.js
> glob                                     7.2.3         7.2.3   13.0.0  node_modules/glob                              xterm.js
jsdom                                   18.1.1        18.1.1   27.2.0  node_modules/jsdom                             xterm.js
mkdirp                                   0.5.5         0.5.5    3.0.1  node_modules/mkdirp                            addon-ligatures@npm:@xterm/addon-ligatures@0.9.0
mocha                                   10.8.2        10.8.2   11.7.5  node_modules/mocha                             xterm.js
node-pty                          1.1.0-beta19  1.1.0-beta19    1.0.0  node_modules/node-pty                          xterm.js
nyc                                     15.1.0        15.1.0   17.1.0  node_modules/nyc                               xterm.js
sinon                                    6.3.5         6.3.5   21.0.0  node_modules/sinon                             addon-ligatures@npm:@xterm/addon-ligatures@0.9.0
source-map-loader                        3.0.2         3.0.2    5.0.0  node_modules/source-map-loader                 xterm.js
typescript                               5.5.4         5.5.4    5.9.3  node_modules/typescript                        xterm.js
webpack-cli                             4.10.0        4.10.0    6.0.1  node_modules/webpack-cli                       xterm.js
xterm-wasm-parts                         0.1.0         0.1.0    0.2.2  node_modules/xterm-wasm-parts                  addon-image@npm:@xterm/addon-image@0.8.0
yauzl                                   2.10.0        2.10.0    3.2.0  node_modules/yauzl                             addon-ligatures@npm:@xterm/addon-ligatures@0.9.0

glob version is very old. Here are dependants:

% npm ls glob
@xterm/xterm@5.5.0 /Users/user/xterm.js
├─┬ @xterm/addon-image@0.8.0 -> ./addons/addon-image
│ └─┬ xterm-wasm-parts@0.1.0
│   └─┬ inwasm@0.0.13
│     └── glob@10.5.0
├── glob@7.2.3
├─┬ mocha@10.8.2
│ └── glob@8.1.0
└─┬ nyc@15.1.0
  ├── glob@7.2.3 deduped
  ├─┬ rimraf@3.0.2
  │ └── glob@7.2.3 deduped
  └─┬ test-exclude@6.0.0
    └── glob@7.2.3 deduped

Will check if bumping up dependency versions would fix the issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions