diff --git a/components/webpack-assets/index.marko b/components/webpack-assets/index.marko
index eac6169..a0d463a 100644
--- a/components/webpack-assets/index.marko
+++ b/components/webpack-assets/index.marko
@@ -1,16 +1,23 @@
import manifest from "!!@marko/webpack/loader!?manifest";
$ const { entry, scriptAttrs, styleAttrs } = input;
$ const assets = manifest.getAssets(entry, out.global.buildName);
+$ const written = out.global.___writtenAssets || (out.global.___writtenAssets = new Set());
$ const nonce = out.global.cspNonce;
-
+
+ $ written.add(js);
+
+
-
+
+ $ written.add(css);
+
+
-
\ No newline at end of file
+
diff --git a/src/__tests__/fixtures/asset-tag/__snapshots__/webpack4/server--main.js b/src/__tests__/fixtures/asset-tag/__snapshots__/webpack4/server--main.js
index d868c91..c626627 100644
--- a/src/__tests__/fixtures/asset-tag/__snapshots__/webpack4/server--main.js
+++ b/src/__tests__/fixtures/asset-tag/__snapshots__/webpack4/server--main.js
@@ -121,6 +121,7 @@ _marko_template._ = marko_dist_runtime_components_renderer__WEBPACK_IMPORTED_MOD
styleAttrs
} = input;
const assets = _marko_webpack_loader_manifest__WEBPACK_IMPORTED_MODULE_0__["default"].getAssets(entry, out.global.buildName);
+ const written = out.global.___writtenAssets || (out.global.___writtenAssets = new Set());
if (assets.js) {
const nonce = out.global.cspNonce;
@@ -128,11 +129,15 @@ _marko_template._ = marko_dist_runtime_components_renderer__WEBPACK_IMPORTED_MOD
for (const js of assets.js) {
const _keyScope = `[${_keyValue++}]`;
- out.w(``);
+
+ if (!written.has(js)) {
+ written.add(js);
+ out.w(``);
+ }
}
}
@@ -141,11 +146,15 @@ _marko_template._ = marko_dist_runtime_components_renderer__WEBPACK_IMPORTED_MOD
for (const css of assets.css) {
const _keyScope2 = `[${_keyValue2++}]`;
- out.w(``);
+
+ if (!written.has(css)) {
+ written.add(css);
+ out.w(``);
+ }
}
}
}, {
diff --git a/src/__tests__/fixtures/asset-tag/__snapshots__/webpack5/server--main.js b/src/__tests__/fixtures/asset-tag/__snapshots__/webpack5/server--main.js
index 61bc7cc..3d313de 100644
--- a/src/__tests__/fixtures/asset-tag/__snapshots__/webpack5/server--main.js
+++ b/src/__tests__/fixtures/asset-tag/__snapshots__/webpack5/server--main.js
@@ -38,6 +38,7 @@ _marko_template._ = marko_dist_runtime_components_renderer__WEBPACK_IMPORTED_MOD
styleAttrs
} = input;
const assets = _marko_webpack_loader_manifest__WEBPACK_IMPORTED_MODULE_1__.default.getAssets(entry, out.global.buildName);
+ const written = out.global.___writtenAssets || (out.global.___writtenAssets = new Set());
if (assets.js) {
const nonce = out.global.cspNonce;
@@ -45,11 +46,15 @@ _marko_template._ = marko_dist_runtime_components_renderer__WEBPACK_IMPORTED_MOD
for (const js of assets.js) {
const _keyScope = `[${_keyValue++}]`;
- out.w(``);
+
+ if (!written.has(js)) {
+ written.add(js);
+ out.w(``);
+ }
}
}
@@ -58,11 +63,15 @@ _marko_template._ = marko_dist_runtime_components_renderer__WEBPACK_IMPORTED_MOD
for (const css of assets.css) {
const _keyScope2 = `[${_keyValue2++}]`;
- out.w(``);
+
+ if (!written.has(css)) {
+ written.add(css);
+ out.w(``);
+ }
}
}
}, {