diff --git a/src/index.ts b/src/index.ts
index d7d43700e..88d08328b 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -75,11 +75,12 @@ export default function loader(
sourceMap,
rootContext,
resourcePath,
- resourceQuery = '',
+ resourceQuery: _resourceQuery = '',
} = loaderContext
- const rawQuery = resourceQuery.slice(1)
+ const rawQuery = _resourceQuery.slice(1)
const incomingQuery = qs.parse(rawQuery)
+ const resourceQuery = rawQuery ? `&${rawQuery}` : ''
const options = (loaderUtils.getOptions(loaderContext) ||
{}) as VueLoaderOptions
diff --git a/test/fixtures/custom-query.vue b/test/fixtures/custom-query.vue
new file mode 100644
index 000000000..675d275f4
--- /dev/null
+++ b/test/fixtures/custom-query.vue
@@ -0,0 +1,5 @@
+
diff --git a/test/script.spec.ts b/test/script.spec.ts
index f2405c66b..b87c34c93 100644
--- a/test/script.spec.ts
+++ b/test/script.spec.ts
@@ -11,3 +11,11 @@ test('named exports', async () => {
test('experimental