diff --git a/.gitignore b/.gitignore index c15a4b125..5e949014c 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ __pycache__ .pytest_cache/ .vscode .venv* +tsconfig.tsbuildinfo build ccache diff --git a/Makefile b/Makefile index b74180e33..398b05b61 100644 --- a/Makefile +++ b/Makefile @@ -133,7 +133,7 @@ node_modules/.installed : src/js/package.json src/js/package-lock.json touch node_modules/.installed dist/pyodide.js src/js/generated/_pyodide.out.js: src/js/*.ts src/js/generated/pyproxy.ts node_modules/.installed - cd src/js && npm run tsc && node esbuild.config.mjs && cd - + cd src/js && npm run build && cd - src/core/stack_switching/stack_switching.out.js : src/core/stack_switching/*.mjs node src/core/stack_switching/esbuild.config.mjs diff --git a/docs/project/changelog.md b/docs/project/changelog.md index 5cbc9e00d..45075057a 100644 --- a/docs/project/changelog.md +++ b/docs/project/changelog.md @@ -23,6 +23,9 @@ myst: - {{ Fix }} Fixed default indexURL calculation in Node.js environment. {pr}`4288` +- {{ Fix }} Fixed a bug that webpack messes up dynamic import of `pyodide.asm.js`. + {pr}`4294` + - {{ Enhancement }} Added experimental support for stack switching. {pr}`3957`, {pr}`3964`, {pr}`3987`, {pr}`3990`, {pr}`3210` diff --git a/src/js/esbuild.config.mjs b/src/js/esbuild.config.mjs index 6dee1350c..f47a55705 100644 --- a/src/js/esbuild.config.mjs +++ b/src/js/esbuild.config.mjs @@ -95,6 +95,9 @@ try { `try{Object.assign(exports,${name})}catch(_){}\nglobalThis.${name}=${name}.${name};\n//# sourceMappingURL`, ); + // inject webpackIgnore comments + content = content.replaceAll("import(", "import(/* webpackIgnore */"); + writeFileSync(outfile, content); } } catch ({ message }) { diff --git a/src/js/package.json b/src/js/package.json index 6384bfff7..958451324 100644 --- a/src/js/package.json +++ b/src/js/package.json @@ -79,6 +79,7 @@ "ws": false }, "scripts": { + "build": "tsc --noEmit && node esbuild.config.mjs", "test": "npm-run-all test:*", "test:unit": "cross-env TEST_NODE=1 ts-mocha --node-option=experimental-loader=./test/loader.mjs --node-option=experimental-wasm-stack-switching -p tsconfig.test.json test/unit/**/*.test.*", "test:node": "cross-env TEST_NODE=1 mocha test/integration/**/*.test.js", diff --git a/src/js/tsconfig.json b/src/js/tsconfig.json index 78cb9b7e0..050827589 100644 --- a/src/js/tsconfig.json +++ b/src/js/tsconfig.json @@ -8,6 +8,7 @@ "module": "ES2022", "moduleResolution": "node", "composite": true, + "tsBuildInfoFile": "tsconfig.tsbuildinfo", "strict": true, "noUnusedLocals": false, "types": ["node"],