fix: build web app as browser module

This commit is contained in:
2026-06-24 14:10:10 +08:00
parent 19e1ccf855
commit 2f858b3bf0
4 changed files with 31 additions and 3 deletions

View File

@@ -5,8 +5,8 @@
"type": "commonjs", "type": "commonjs",
"main": "dist/src/index.js", "main": "dist/src/index.js",
"scripts": { "scripts": {
"build": "tsc -p tsconfig.json && mkdir -p dist/web && cp web/index.html web/style.css dist/web/", "build": "tsc -p tsconfig.json && tsc -p tsconfig.web.json && mkdir -p dist/web && cp web/index.html web/style.css dist/web/",
"typecheck": "tsc -p tsconfig.json --noEmit", "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.web.json --noEmit",
"start": "npm run build && node dist/src/index.js", "start": "npm run build && node dist/src/index.js",
"test": "npm run build && STEAM_CHAT_DISABLE_AUTOSTART=1 node --test dist/test/*.test.js" "test": "npm run build && STEAM_CHAT_DISABLE_AUTOSTART=1 node --test dist/test/*.test.js"
}, },

13
test/web-build.test.ts Normal file
View File

@@ -0,0 +1,13 @@
'use strict';
const assert = require('node:assert/strict');
const fs = require('node:fs');
const path = require('node:path');
const test = require('node:test');
test('web app build emits a browser-compatible script', () => {
const appPath = path.resolve(__dirname, '../web/app.js');
const appSource = fs.readFileSync(appPath, 'utf8');
assert.doesNotMatch(appSource, /\bexports\b|module\.exports|require\(/);
});

View File

@@ -13,5 +13,5 @@
"noImplicitAny": true, "noImplicitAny": true,
"strict": false "strict": false
}, },
"include": ["src/**/*.ts", "test/**/*.ts", "web/**/*.ts"] "include": ["src/**/*.ts", "test/**/*.ts"]
} }

15
tsconfig.web.json Normal file
View File

@@ -0,0 +1,15 @@
{
"compilerOptions": {
"target": "ES2022",
"module": "ES2022",
"rootDir": "web",
"outDir": "dist/web",
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"types": [],
"forceConsistentCasingInFileNames": true,
"skipLibCheck": true,
"noImplicitAny": true,
"strict": false
},
"include": ["web/**/*.ts"]
}