diff --git a/package-lock.json b/package-lock.json index ba876ba081729..6d059c889615e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "eslint-config-prettier": "^9.1.0", "globals": "^15.14.0", "prettier": "^3.4.2", + "rollup": "^4.30.1", "source-map": "0.7.4", "typescript": "^5.7.2", "vite": "^6.0.7", diff --git a/package.json b/package.json index 6b426d834990b..8aac0a37180a8 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "eslint-config-prettier": "^9.1.0", "globals": "^15.14.0", "prettier": "^3.4.2", + "rollup": "^4.30.1", "source-map": "0.7.4", "typescript": "^5.7.2", "vite": "^6.0.7", diff --git a/test/rollup/index.html b/test/rollup/index.html new file mode 100644 index 0000000000000..cc337edee9180 --- /dev/null +++ b/test/rollup/index.html @@ -0,0 +1,6 @@ + + +

+ + + diff --git a/test/rollup/index.mjs b/test/rollup/index.mjs new file mode 100644 index 0000000000000..31281c791d1e3 --- /dev/null +++ b/test/rollup/index.mjs @@ -0,0 +1,17 @@ +var params = { + print: (function() { + var element = document.getElementById('output'); + return function(text) { + console.log(text); + element.innerHTML += text.replace('\n', '
', 'g') + '
'; + }; + })(), + canvas: document.getElementById('canvas'), +}; + +params.print("testing.."); + +import Module from './hello.mjs'; +Module(params).then((instance) => { + console.log('loaded'); +}); diff --git a/test/rollup/rollup.config.mjs b/test/rollup/rollup.config.mjs new file mode 100644 index 0000000000000..d3ac1a4fd2515 --- /dev/null +++ b/test/rollup/rollup.config.mjs @@ -0,0 +1,7 @@ +export default { + input: 'index.mjs', + output: { + file: 'bundle.mjs', + format: 'es' + } +}; diff --git a/test/test_browser.py b/test/test_browser.py index 636ec411eb54c..7ddc7ab09bebf 100644 --- a/test/test_browser.py +++ b/test/test_browser.py @@ -5528,6 +5528,13 @@ def test_vite(self): self.run_process(shared.get_npm_cmd('vite') + ['build']) self.run_browser('vite/dist/index.html', '/report_result?exit:0') + def test_rollup(self): + shutil.copytree(test_file('rollup'), 'rollup') + with common.chdir('rollup'): + self.compile_btest('hello_world.c', ['-sEXPORT_ES6', '-sEXIT_RUNTIME', '-sMODULARIZE', '-o', 'hello.mjs']) + self.run_process(shared.get_npm_cmd('rollup') + ['--config']) + self.run_browser('rollup/index.html', '/report_result?exit:0') + class emrun(RunnerCore): def test_emrun_info(self):