diff --git a/apps/systemtags/appinfo/app.php b/apps/systemtags/appinfo/app.php
index bb2930e9197e4310abe0404c23db87cefdb64fc7..099ce7f9b95526039e01e005fe593e69749b218a 100644
--- a/apps/systemtags/appinfo/app.php
+++ b/apps/systemtags/appinfo/app.php
@@ -30,15 +30,8 @@ $eventDispatcher->addListener(
 	function() {
 		// FIXME: no public API for these ?
 		\OCP\Util::addScript('oc-backbone-webdav');
-		\OCP\Util::addScript('systemtags/systemtags');
-		\OCP\Util::addScript('systemtags/systemtagmodel');
-		\OCP\Util::addScript('systemtags/systemtagsmappingcollection');
-		\OCP\Util::addScript('systemtags/systemtagscollection');
-		\OCP\Util::addScript('systemtags/systemtagsinputfield');
-		\OCP\Util::addScript('systemtags', 'app');
-		\OCP\Util::addScript('systemtags', 'systemtagsfilelist');
-		\OCP\Util::addScript('systemtags', 'filesplugin');
-		\OCP\Util::addScript('systemtags', 'systemtagsinfoview');
+		\OCP\Util::addScript('systemtags/merged');
+		\OCP\Util::addScript('systemtags', 'merged');
 		\OCP\Util::addStyle('systemtags');
 		\OCP\Util::addStyle('systemtags', 'systemtagsfilelist');
 	}
diff --git a/apps/systemtags/js/merged.json b/apps/systemtags/js/merged.json
new file mode 100644
index 0000000000000000000000000000000000000000..0262077498aa974914a0230f10668d3bf1d2ee6b
--- /dev/null
+++ b/apps/systemtags/js/merged.json
@@ -0,0 +1,6 @@
+[
+  "app.js",
+  "systemtagsfilelist.js",
+  "filesplugin.js",
+  "systemtagsinfoview.js"
+]
diff --git a/core/js/systemtags/merged.json b/core/js/systemtags/merged.json
new file mode 100644
index 0000000000000000000000000000000000000000..846ba967ed5b92a794bb06600d46f15c116a5d5c
--- /dev/null
+++ b/core/js/systemtags/merged.json
@@ -0,0 +1,7 @@
+[
+  "systemtags.js",
+  "systemtagmodel.js",
+  "systemtagsmappingcollection.js",
+  "systemtagscollection.js",
+  "systemtagsinputfield.js"
+]