-
Notifications
You must be signed in to change notification settings - Fork 27k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dedupe meta tags #8960
Dedupe meta tags #8960
Conversation
Hey Melanie! Could you add a test for this so that we can ensure it doesn't break in the future? |
@timneutkens Sure thing! Would you mind telling me where I should add it? Is there a test file already existing or should I create a new one? Poked around a bit but not entirely sure where it should go... Also, trying to run tests with |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
buildDuration | 15.3s | 15.4s | |
nodeModulesSize | 48.3 MB | 48.3 MB | -2.3 kB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.js | 18.9 kB | 18.9 kB | ✓ |
main-HASH.js gzip | 6.79 kB | 6.79 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..6604acae7.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..cae7.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 211 kB | 211 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.module.js | 17.2 kB | 17.2 kB | ✓ |
main-HASH.module.js gzip | 6.52 kB | 6.52 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..42.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 190 kB | 190 kB | ✓ |
Client Pages Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12.1 kB | |
_error.js gzip | 4.73 kB | 4.75 kB | |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.9 kB |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.59 kB | 8.61 kB | |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB |
Client Build Manifests
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Rendered Page Sizes
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
index.html | 3.62 kB | 3.62 kB | ✓ |
index.html gzip | 945 B | 945 B | ✓ |
link.html | 3.66 kB | 3.66 kB | ✓ |
link.html gzip | 954 B | 954 B | ✓ |
withRouter.html | 3.67 kB | 3.67 kB | ✓ |
withRouter.html gzip | 942 B | 942 B | ✓ |
Overall change | 10.9 kB | 10.9 kB | ✓ |
Diffs
Diff for _error.js
@@ -303,7 +303,12 @@ function unique() {
if (keys.has(h.key)) return false;
keys.add(h.key);
return true;
- }
+ } // If custom meta tag has been added the key will be prepended with `.$`, we can
+ // check for this and dedupe in favor of the custom one, so the default
+ // is not rendered as well
+
+
+ if (keys.has(".$".concat(h.key))) return false;
switch (h.type) {
case 'title':
Diff for _error.module.js
@@ -436,7 +436,12 @@ function unique() {
if (keys.has(h.key)) return false;
keys.add(h.key);
return true;
- }
+ } // If custom meta tag has been added the key will be prepended with `.$`, we can
+ // check for this and dedupe in favor of the custom one, so the default
+ // is not rendered as well
+
+
+ if (keys.has(".$".concat(h.key))) return false;
switch (h.type) {
case 'title':
Serverless Mode (Increase detected ⚠️ )
General Overall decrease ✓
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
buildDuration | 15.5s | 15.5s | |
nodeModulesSize | 48.3 MB | 48.3 MB | -2.3 kB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.js | 18.9 kB | 18.9 kB | ✓ |
main-HASH.js gzip | 6.79 kB | 6.79 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..6604acae7.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..cae7.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 211 kB | 211 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.module.js | 17.2 kB | 17.2 kB | ✓ |
main-HASH.module.js gzip | 6.52 kB | 6.52 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..42.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 190 kB | 190 kB | ✓ |
Client Pages Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12.1 kB | |
_error.js gzip | 4.73 kB | 4.75 kB | |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.9 kB |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.59 kB | 8.61 kB | |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB |
Client Build Manifests
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_error.js | 253 kB | 254 kB | |
_error.js gzip | 67.9 kB | 68 kB | |
hooks.html | 3.75 kB | 3.75 kB | ✓ |
hooks.html gzip | 979 B | 979 B | ✓ |
index.js | 254 kB | 254 kB | |
index.js gzip | 68.2 kB | 68.3 kB | |
link.js | 261 kB | 262 kB | |
link.js gzip | 70.3 kB | 70.4 kB | |
routerDirect.js | 255 kB | 255 kB | |
routerDirect.js gzip | 68.3 kB | 68.4 kB | |
withRouter.js | 254 kB | 255 kB | |
withRouter.js gzip | 68.4 kB | 68.5 kB | |
Overall change | 1.28 MB | 1.28 MB |
Commit: 7c1d7ce
Hi @melanieseltzer you might need to bump the Then you'll probably want to run |
Also, you can add the test under |
Thanks, @ijjk! That fix worked. Test has been added. Seems like there's an existing test for deduping but I created something a little more explicit for matching keys. Let me know if this is okay... wasn't sure if I should have just added matching keys to what was there already (instead of creating a new test case). |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
buildDuration | 16.3s | 16.8s | |
nodeModulesSize | 48.3 MB | 48.3 MB | -13.8 kB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.js | 18.9 kB | 18.9 kB | ✓ |
main-HASH.js gzip | 6.79 kB | 6.79 kB | -1 B |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..6604acae7.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..cae7.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 211 kB | 211 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.module.js | 17.2 kB | 17.2 kB | ✓ |
main-HASH.module.js gzip | 6.52 kB | 6.52 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..42.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 190 kB | 190 kB | ✓ |
Client Pages Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12.1 kB | |
_error.js gzip | 4.73 kB | 4.75 kB | |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.9 kB |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.59 kB | 8.61 kB | |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB |
Client Build Manifests
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Rendered Page Sizes
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
index.html | 3.62 kB | 3.62 kB | ✓ |
index.html gzip | 946 B | 945 B | -1 B |
link.html | 3.66 kB | 3.66 kB | ✓ |
link.html gzip | 954 B | 954 B | ✓ |
withRouter.html | 3.67 kB | 3.67 kB | ✓ |
withRouter.html gzip | 942 B | 942 B | ✓ |
Overall change | 10.9 kB | 10.9 kB | ✓ |
Diffs
Diff for main-HASH.js
@@ -368,7 +368,7 @@ if (!window.Promise) {
var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
window.__NEXT_DATA__ = data;
-var version = "9.0.8-canary.5";
+var version = "9.0.8-canary.4";
exports.version = version;
var props = data.props,
err = data.err,
Diff for main-HASH.module.js
@@ -425,7 +425,7 @@ if (!window.Promise) {
const data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
window.__NEXT_DATA__ = data;
-const version = "9.0.8-canary.5";
+const version = "9.0.8-canary.4";
exports.version = version;
const {
props,
Diff for _error.js
@@ -303,7 +303,12 @@ function unique() {
if (keys.has(h.key)) return false;
keys.add(h.key);
return true;
- }
+ } // If custom meta tag has been added the key will be prepended with `.$`, we can
+ // check for this and dedupe in favor of the custom one, so the default
+ // is not rendered as well
+
+
+ if (keys.has(".$".concat(h.key))) return false;
switch (h.type) {
case 'title':
Diff for _error.module.js
@@ -436,7 +436,12 @@ function unique() {
if (keys.has(h.key)) return false;
keys.add(h.key);
return true;
- }
+ } // If custom meta tag has been added the key will be prepended with `.$`, we can
+ // check for this and dedupe in favor of the custom one, so the default
+ // is not rendered as well
+
+
+ if (keys.has(".$".concat(h.key))) return false;
switch (h.type) {
case 'title':
Diff for index.html
@@ -12,7 +12,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
@@ -43,9 +43,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-d34a5c8437432dd29e59.js"
+ <script src="/_next/static/runtime/main-7f7a34a352f81fae8d77.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <script src="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -16,7 +16,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/BUILD_ID/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
@@ -56,9 +56,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-d34a5c8437432dd29e59.js"
+ <script src="/_next/static/runtime/main-7f7a34a352f81fae8d77.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <script src="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -16,7 +16,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/BUILD_ID/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
@@ -54,9 +54,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-d34a5c8437432dd29e59.js"
+ <script src="/_next/static/runtime/main-7f7a34a352f81fae8d77.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <script src="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
crossorigin="anonymous" nomodule=""></script>
Serverless Mode (Increase detected ⚠️ )
General Overall decrease ✓
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
buildDuration | 16.9s | 17s | |
nodeModulesSize | 48.3 MB | 48.3 MB | -13.8 kB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.js | 18.9 kB | 18.9 kB | ✓ |
main-HASH.js gzip | 6.79 kB | 6.79 kB | -1 B |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..6604acae7.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..cae7.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 211 kB | 211 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.module.js | 17.2 kB | 17.2 kB | ✓ |
main-HASH.module.js gzip | 6.52 kB | 6.52 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..42.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 190 kB | 190 kB | ✓ |
Client Pages Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12.1 kB | |
_error.js gzip | 4.73 kB | 4.75 kB | |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.9 kB |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.59 kB | 8.61 kB | |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB |
Client Build Manifests
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_error.js | 253 kB | 254 kB | |
_error.js gzip | 67.9 kB | 68 kB | |
hooks.html | 3.75 kB | 3.75 kB | ✓ |
hooks.html gzip | 979 B | 979 B | ✓ |
index.js | 254 kB | 254 kB | |
index.js gzip | 68.2 kB | 68.3 kB | |
link.js | 261 kB | 262 kB | |
link.js gzip | 70.3 kB | 70.4 kB | |
routerDirect.js | 255 kB | 255 kB | |
routerDirect.js gzip | 68.3 kB | 68.4 kB | |
withRouter.js | 254 kB | 255 kB | |
withRouter.js gzip | 68.4 kB | 68.5 kB | |
Overall change | 1.28 MB | 1.28 MB |
Commit: a86dc5f
test/integration/client-navigation/pages/head-duplicate-default-keys.js
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome first PR @melanieseltzer! 💯🚀
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
buildDuration | 14.5s | 14.7s | |
nodeModulesSize | 48.3 MB | 48.3 MB | -13.8 kB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.js | 18.9 kB | 18.9 kB | ✓ |
main-HASH.js gzip | 6.79 kB | 6.79 kB | -1 B |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..6604acae7.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..cae7.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 211 kB | 211 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.module.js | 17.2 kB | 17.2 kB | ✓ |
main-HASH.module.js gzip | 6.52 kB | 6.52 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..42.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 190 kB | 190 kB | ✓ |
Client Pages Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12.1 kB | |
_error.js gzip | 4.73 kB | 4.75 kB | |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.9 kB |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.59 kB | 8.61 kB | |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB |
Client Build Manifests
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Rendered Page Sizes
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
index.html | 3.62 kB | 3.62 kB | ✓ |
index.html gzip | 946 B | 945 B | -1 B |
link.html | 3.66 kB | 3.66 kB | ✓ |
link.html gzip | 954 B | 954 B | ✓ |
withRouter.html | 3.67 kB | 3.67 kB | ✓ |
withRouter.html gzip | 942 B | 942 B | ✓ |
Overall change | 10.9 kB | 10.9 kB | ✓ |
Diffs
Diff for main-HASH.js
@@ -368,7 +368,7 @@ if (!window.Promise) {
var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
window.__NEXT_DATA__ = data;
-var version = "9.0.8-canary.5";
+var version = "9.0.8-canary.4";
exports.version = version;
var props = data.props,
err = data.err,
Diff for main-HASH.module.js
@@ -425,7 +425,7 @@ if (!window.Promise) {
const data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
window.__NEXT_DATA__ = data;
-const version = "9.0.8-canary.5";
+const version = "9.0.8-canary.4";
exports.version = version;
const {
props,
Diff for _error.js
@@ -303,7 +303,12 @@ function unique() {
if (keys.has(h.key)) return false;
keys.add(h.key);
return true;
- }
+ } // If custom meta tag has been added the key will be prepended with `.$`, we can
+ // check for this and dedupe in favor of the custom one, so the default
+ // is not rendered as well
+
+
+ if (keys.has(".$".concat(h.key))) return false;
switch (h.type) {
case 'title':
Diff for _error.module.js
@@ -436,7 +436,12 @@ function unique() {
if (keys.has(h.key)) return false;
keys.add(h.key);
return true;
- }
+ } // If custom meta tag has been added the key will be prepended with `.$`, we can
+ // check for this and dedupe in favor of the custom one, so the default
+ // is not rendered as well
+
+
+ if (keys.has(".$".concat(h.key))) return false;
switch (h.type) {
case 'title':
Diff for index.html
@@ -12,7 +12,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
@@ -43,9 +43,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-d34a5c8437432dd29e59.js"
+ <script src="/_next/static/runtime/main-7f7a34a352f81fae8d77.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <script src="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -16,7 +16,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/BUILD_ID/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
@@ -56,9 +56,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-d34a5c8437432dd29e59.js"
+ <script src="/_next/static/runtime/main-7f7a34a352f81fae8d77.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <script src="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -16,7 +16,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/BUILD_ID/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
@@ -54,9 +54,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-d34a5c8437432dd29e59.js"
+ <script src="/_next/static/runtime/main-7f7a34a352f81fae8d77.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-e6f24f04f0ea80f64759.module.js"
+ <script src="/_next/static/runtime/main-f10d9867132b44eefaab.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
crossorigin="anonymous" nomodule=""></script>
Serverless Mode (Increase detected ⚠️ )
General Overall decrease ✓
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
buildDuration | 14.5s | 14.7s | |
nodeModulesSize | 48.3 MB | 48.3 MB | -13.8 kB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.js | 18.9 kB | 18.9 kB | ✓ |
main-HASH.js gzip | 6.79 kB | 6.79 kB | -1 B |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..6604acae7.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..cae7.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 211 kB | 211 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.module.js | 17.2 kB | 17.2 kB | ✓ |
main-HASH.module.js gzip | 6.52 kB | 6.52 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..42.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 190 kB | 190 kB | ✓ |
Client Pages Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12.1 kB | |
_error.js gzip | 4.73 kB | 4.75 kB | |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.9 kB |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.59 kB | 8.61 kB | |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB |
Client Build Manifests
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_error.js | 253 kB | 254 kB | |
_error.js gzip | 67.9 kB | 68 kB | |
hooks.html | 3.75 kB | 3.75 kB | ✓ |
hooks.html gzip | 979 B | 979 B | ✓ |
index.js | 254 kB | 254 kB | |
index.js gzip | 68.2 kB | 68.3 kB | |
link.js | 261 kB | 262 kB | |
link.js gzip | 70.3 kB | 70.4 kB | |
routerDirect.js | 255 kB | 255 kB | |
routerDirect.js gzip | 68.3 kB | 68.4 kB | |
withRouter.js | 254 kB | 255 kB | |
withRouter.js gzip | 68.4 kB | 68.5 kB | |
Overall change | 1.28 MB | 1.28 MB |
Commit: e4f489b
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
buildDuration | 15.9s | 15.8s | -30ms |
nodeModulesSize | 48.5 MB | 48.5 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.js | 18.9 kB | 18.9 kB | ✓ |
main-HASH.js gzip | 6.79 kB | 6.79 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..9dda6167a.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..167a.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..3a0560775.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..0775.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 211 kB | 211 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.module.js | 17.2 kB | 17.2 kB | ✓ |
main-HASH.module.js gzip | 6.52 kB | 6.52 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..72.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 190 kB | 190 kB | ✓ |
Client Pages Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12.1 kB | |
_error.js gzip | 4.73 kB | 4.75 kB | |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.9 kB |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.59 kB | 8.61 kB | |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB |
Client Build Manifests
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Rendered Page Sizes
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
index.html | 3.62 kB | 3.62 kB | ✓ |
index.html gzip | 946 B | 946 B | ✓ |
link.html | 3.66 kB | 3.66 kB | ✓ |
link.html gzip | 954 B | 954 B | ✓ |
withRouter.html | 3.67 kB | 3.67 kB | ✓ |
withRouter.html gzip | 941 B | 941 B | ✓ |
Overall change | 10.9 kB | 10.9 kB | ✓ |
Diffs
Diff for _error.js
@@ -303,7 +303,12 @@ function unique() {
if (keys.has(h.key)) return false;
keys.add(h.key);
return true;
- }
+ } // If custom meta tag has been added the key will be prepended with `.$`, we can
+ // check for this and dedupe in favor of the custom one, so the default
+ // is not rendered as well
+
+
+ if (keys.has(".$".concat(h.key))) return false;
switch (h.type) {
case 'title':
Diff for _error.module.js
@@ -436,7 +436,12 @@ function unique() {
if (keys.has(h.key)) return false;
keys.add(h.key);
return true;
- }
+ } // If custom meta tag has been added the key will be prepended with `.$`, we can
+ // check for this and dedupe in favor of the custom one, so the default
+ // is not rendered as well
+
+
+ if (keys.has(".$".concat(h.key))) return false;
switch (h.type) {
case 'title':
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
buildDuration | 16.5s | 16.1s | -369ms |
nodeModulesSize | 48.5 MB | 48.5 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.js | 18.9 kB | 18.9 kB | ✓ |
main-HASH.js gzip | 6.79 kB | 6.79 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..9dda6167a.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..167a.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..3a0560775.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..0775.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 211 kB | 211 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
main-HASH.module.js | 17.2 kB | 17.2 kB | ✓ |
main-HASH.module.js gzip | 6.52 kB | 6.52 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..72.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 190 kB | 190 kB | ✓ |
Client Pages Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12.1 kB | |
_error.js gzip | 4.73 kB | 4.75 kB | |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.9 kB |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.59 kB | 8.61 kB | |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB |
Client Build Manifests
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | melanieseltzer/next.js dedupe-tags | Change | |
---|---|---|---|
_error.js | 254 kB | 254 kB | |
_error.js gzip | 68 kB | 68.1 kB | |
hooks.html | 3.75 kB | 3.75 kB | ✓ |
hooks.html gzip | 979 B | 979 B | ✓ |
index.js | 254 kB | 255 kB | |
index.js gzip | 68.4 kB | 68.5 kB | |
link.js | 262 kB | 262 kB | |
link.js gzip | 70.4 kB | 70.5 kB | |
routerDirect.js | 255 kB | 255 kB | |
routerDirect.js gzip | 68.4 kB | 68.5 kB | |
withRouter.js | 255 kB | 255 kB | |
withRouter.js gzip | 68.5 kB | 68.6 kB | |
Overall change | 1.28 MB | 1.29 MB |
Commit: f045e31
Hi @timneutkens Is there anything else I need to do to have this merged? :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nothing to change, this is great! Sorry for the delay.
@@ -82,6 +82,16 @@ export default function (render, fetch) { | |||
) | |||
}) | |||
|
|||
test('header helper dedupes tags with the same key as the default', async () => { | |||
const html = await render('/head') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You render wrong page
This adjusts a test added in vercel#8960 to render the correct page.
This adjusts a test added in #8960 to render the correct page.
Hopefully I'm on the right track here... it seems like we can check for the prepended
.$
in the keys set. If that exists and matches the current item in the filter, then a custom version of the tag was implemented, so ignore the default.Fixes #8955