Fixes https://github.com/xtermjs/xterm.js/issues/5896 TypeScript path mappings for common/*, browser/*, and headless/* were not rewritten in emitted JavaScript, which forced webpack resolve aliases and NODE_PATH workarounds so runtime could resolve modules. That added build complexity and broke tooling such as ESLint import/no-cycle. Changes: - Convert ~750 imports across src/, addons/, and test/ to relative paths - Remove common/browser/headless paths and src catch-all mappings from tsconfigs (keep @xterm/addon-* demo and addon typings paths) - Remove webpack resolve.alias for common, browser, headless, and vs - Drop NODE_PATH from unit tests, benchmarks, and VS Code launch config - Fix addon-image IIPImageStorage to import ./Types after removing catch-all * Verified: npm run build, esbuild, package, package-headless Co-authored-by: Cursor <cursoragent@cursor.com>
44 lines
1.0 KiB
JavaScript
44 lines
1.0 KiB
JavaScript
/**
|
|
* Copyright (c) 2019 The xterm.js authors. All rights reserved.
|
|
* @license MIT
|
|
*/
|
|
|
|
// @ts-check
|
|
|
|
const path = require('path');
|
|
|
|
/**
|
|
* This webpack config does a production build for xterm.js. It works by taking the output from tsc
|
|
* (via `npm run watch` or `npm run prebuild`) which are put into `out/` and webpacks them into a
|
|
* production mode umd library module in `lib/`.
|
|
*
|
|
* @type {import('webpack').Configuration}
|
|
*/
|
|
const config = {
|
|
entry: './out/browser/public/Terminal.js',
|
|
devtool: 'source-map',
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.js$/,
|
|
use: ["source-map-loader"],
|
|
enforce: "pre",
|
|
exclude: /node_modules/
|
|
}
|
|
]
|
|
},
|
|
resolve: {
|
|
modules: ['./node_modules'],
|
|
extensions: [ '.js' ],
|
|
},
|
|
output: {
|
|
filename: 'xterm.js',
|
|
path: path.resolve('./lib'),
|
|
libraryTarget: 'umd',
|
|
// Force usage of globalThis instead of global / self. (This is cross-env compatible)
|
|
globalObject: 'globalThis',
|
|
},
|
|
mode: 'production',
|
|
};
|
|
module.exports = config;
|