diff --git a/examples/preserve-modules/package.json b/examples/preserve-modules/package.json
new file mode 100644
index 0000000..c7fc08d
--- /dev/null
+++ b/examples/preserve-modules/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "preserve-modules",
+ "version": "0.0.0",
+ "private": true,
+ "scripts": {
+ "build": "rollup -c"
+ },
+ "dependencies": {
+ "rollup": "^2.10.9",
+ "rollup-plugin-vue": "link:../.."
+ }
+}
diff --git a/examples/preserve-modules/rollup.config.js b/examples/preserve-modules/rollup.config.js
new file mode 100644
index 0000000..441f2f2
--- /dev/null
+++ b/examples/preserve-modules/rollup.config.js
@@ -0,0 +1,15 @@
+import VuePlugin from 'rollup-plugin-vue'
+
+export default [
+ {
+ input: 'src/HelloWorld.vue',
+ output: {
+ file: 'dist/HelloWorld.js',
+ format: 'esm',
+ sourcemap: 'inline',
+ preserveModules: true,
+ },
+ plugins: [VuePlugin()],
+ external: ['vue'],
+ },
+]
diff --git a/examples/preserve-modules/src/App.vue b/examples/preserve-modules/src/App.vue
new file mode 100644
index 0000000..4e6c171
--- /dev/null
+++ b/examples/preserve-modules/src/App.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/examples/preserve-modules/src/HelloWorld.vue b/examples/preserve-modules/src/HelloWorld.vue
new file mode 100644
index 0000000..7bb97bf
--- /dev/null
+++ b/examples/preserve-modules/src/HelloWorld.vue
@@ -0,0 +1,9 @@
+
+
+
+ Hello {{ name }}!
+
diff --git a/test/core.e2e.ts b/test/core.e2e.ts
index 8b63f15..9f91fe9 100644
--- a/test/core.e2e.ts
+++ b/test/core.e2e.ts
@@ -92,6 +92,18 @@ describe('typescript', () => {
})
})
+describe('preserve modules', () => {
+ let result!: RollupOutput
+
+ beforeAll(async () => {
+ result = await roll('preserve-modules')
+ })
+
+ it('should have modules', () => {
+ expect(Object.keys(result.output[0].modules).length).not.toEqual(0)
+ })
+})
+
import Path from 'path'
async function roll(name: string) {
const configFile = `../examples/${name}/rollup.config.js`