Skip to content

Commit 5a0397a

Browse files
authored
feat!: Remove script preloading (#134)
* feat: remove mergeLinkHeaders functionality * feat: remove preload headers * feat: remove irrelevant readme info * feat: deprecate option properly * remove unused constants
1 parent 4302ef2 commit 5a0397a

7 files changed

+6
-402
lines changed

README.md

-23
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ plugins: [
3838
headers: {}, // option to add more headers. `Link` headers are transformed by the below criteria
3939
allPageHeaders: [], // option to add headers for all pages. `Link` headers are transformed by the below criteria
4040
mergeSecurityHeaders: true, // boolean to turn off the default security headers
41-
mergeLinkHeaders: true, // boolean to turn off the default gatsby js headers
4241
mergeCachingHeaders: true, // boolean to turn off the default caching headers
4342
transformHeaders: (headers, path) => headers, // optional transform for manipulating headers under each path (e.g.sorting), etc.
4443
generateMatchPathRewrites: true, // boolean to turn off automatic creation of redirect rules for client only paths
@@ -76,28 +75,6 @@ file hash), the plugin will transform any base file names to the hashed variants
7675
ensure the path is valid relative to the output `public` folder. You should be able to reference assets imported through
7776
javascript in the `static` folder.
7877

79-
When `mergeLinkHeaders` is true, as it is by default, this plugin will generate HTTP preload headers for the asset paths
80-
for all of your application's pages.
81-
82-
An example:
83-
84-
```
85-
/my-page
86-
Link: </webpack-runtime-61d3e010ac286a1ce7e1.js>; rel=preload; as=script
87-
Link: </styles-89fd2ae28bdf06750a71.js>; rel=preload; as=script
88-
Link: </framework-376edee25eb5f5cd8260.js>; rel=preload; as=script
89-
Link: </app-9035e07a2b55474b8eee.js>; rel=preload; as=script
90-
Link: </styles-89fd2ae28bdf06750a71.js>; rel=preload; as=script
91-
Link: </component---src-pages-index-js-102db70fdea806a1e5b8.js>; rel=preload; as=script
92-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
93-
Link: </page-data/index/page-data.json>; rel=preload; as=fetch; crossorigin
94-
```
95-
96-
Therefore, expect the size of the `_headers` file to grow linearly with the number of pages in your application.
97-
98-
> **Note:** Gatsby also adds these preload tags in your pages' index.html files, whether or not you are using this
99-
> plugin.
100-
10178
Do not specify the public path in the config, as the plugin will provide it for you.
10279

10380
The Netlify `_headers` file does not inherit headers, and it will replace any matching headers it finds in more specific
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,5 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3-
exports[`build-headers-program with caching headers 1`] = `
4-
"## Created with gatsby-plugin-netlify
5-
6-
/*
7-
X-Frame-Options: DENY
8-
X-XSS-Protection: 1; mode=block
9-
X-Content-Type-Options: nosniff
10-
Referrer-Policy: same-origin
11-
/component---node-modules-gatsby-plugin-offline-app-shell-js-78f9e4dea04737fa062d.js
12-
Cache-Control: public, max-age=31536000, immutable
13-
/0-0180cd94ef2497ac7db8.js
14-
Cache-Control: public, max-age=31536000, immutable
15-
/component---src-templates-blog-post-js-517987eae96e75cddbe7.js
16-
Cache-Control: public, max-age=31536000, immutable
17-
/component---src-pages-404-js-53e6c51a5a7e73090f50.js
18-
Cache-Control: public, max-age=31536000, immutable
19-
/component---src-pages-index-js-0bdd01c77ee09ef0224c.js
20-
Cache-Control: public, max-age=31536000, immutable
21-
/webpack-runtime-acaa8994f1f704475e21.js
22-
Cache-Control: public, max-age=31536000, immutable
23-
/styles.1025963f4f2ec7abbad4.css
24-
Cache-Control: public, max-age=31536000, immutable
25-
/styles-565f081c8374bbda155f.js
26-
Cache-Control: public, max-age=31536000, immutable
27-
/app-f33c13590352da20930f.js
28-
Cache-Control: public, max-age=31536000, immutable
29-
/static/*
30-
Cache-Control: public, max-age=31536000, immutable
31-
/sw.js
32-
Cache-Control: no-cache
33-
/offline-plugin-app-shell-fallback/
34-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
35-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
36-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
37-
Link: </component---node-modules-gatsby-plugin-offline-app-shell-js-78f9e4dea04737fa062d.js>; rel=preload; as=script
38-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
39-
Link: </page-data/offline-plugin-app-shell-fallback/page-data.json>; rel=preload; as=fetch; crossorigin
40-
/hi-folks/
41-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
42-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
43-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
44-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
45-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
46-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
47-
Link: </page-data/hi-folks/page-data.json>; rel=preload; as=fetch; crossorigin
48-
/my-second-post/
49-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
50-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
51-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
52-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
53-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
54-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
55-
Link: </page-data/my-second-post/page-data.json>; rel=preload; as=fetch; crossorigin
56-
/hello-world/
57-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
58-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
59-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
60-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
61-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
62-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
63-
Link: </page-data/hello-world/page-data.json>; rel=preload; as=fetch; crossorigin
64-
/404/
65-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
66-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
67-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
68-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
69-
Link: </component---src-pages-404-js-53e6c51a5a7e73090f50.js>; rel=preload; as=script
70-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
71-
Link: </page-data/404/page-data.json>; rel=preload; as=fetch; crossorigin
72-
/
73-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
74-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
75-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
76-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
77-
Link: </component---src-pages-index-js-0bdd01c77ee09ef0224c.js>; rel=preload; as=script
78-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
79-
Link: </page-data/index/page-data.json>; rel=preload; as=fetch; crossorigin
80-
/404.html
81-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
82-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
83-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
84-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
85-
Link: </component---src-pages-404-js-53e6c51a5a7e73090f50.js>; rel=preload; as=script
86-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
87-
Link: </page-data/404.html/page-data.json>; rel=preload; as=fetch; crossorigin
88-
"
89-
`;
90-
913
exports[`build-headers-program with manifest['pages-manifest'] 1`] = `
924
"## Created with gatsby-plugin-netlify
935
@@ -120,47 +32,6 @@ exports[`build-headers-program with manifest['pages-manifest'] 1`] = `
12032
Cache-Control: public, max-age=31536000, immutable
12133
/sw.js
12234
Cache-Control: no-cache
123-
/offline-plugin-app-shell-fallback/
124-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
125-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
126-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
127-
Link: </component---node-modules-gatsby-plugin-offline-app-shell-js-78f9e4dea04737fa062d.js>; rel=preload; as=script
128-
/hi-folks/
129-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
130-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
131-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
132-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
133-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
134-
/my-second-post/
135-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
136-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
137-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
138-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
139-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
140-
/hello-world/
141-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
142-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
143-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
144-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
145-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
146-
/404/
147-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
148-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
149-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
150-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
151-
Link: </component---src-pages-404-js-53e6c51a5a7e73090f50.js>; rel=preload; as=script
152-
/
153-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
154-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
155-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
156-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
157-
Link: </component---src-pages-index-js-0bdd01c77ee09ef0224c.js>; rel=preload; as=script
158-
/404.html
159-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
160-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
161-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
162-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
163-
Link: </component---src-pages-404-js-53e6c51a5a7e73090f50.js>; rel=preload; as=script
16435
"
16536
`;
16637

@@ -197,61 +68,6 @@ exports[`build-headers-program with security headers 1`] = `
19768
Cache-Control: public, max-age=31536000, immutable
19869
/sw.js
19970
Cache-Control: no-cache
200-
/offline-plugin-app-shell-fallback/
201-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
202-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
203-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
204-
Link: </component---node-modules-gatsby-plugin-offline-app-shell-js-78f9e4dea04737fa062d.js>; rel=preload; as=script
205-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
206-
Link: </page-data/offline-plugin-app-shell-fallback/page-data.json>; rel=preload; as=fetch; crossorigin
207-
/hi-folks/
208-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
209-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
210-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
211-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
212-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
213-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
214-
Link: </page-data/hi-folks/page-data.json>; rel=preload; as=fetch; crossorigin
215-
/my-second-post/
216-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
217-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
218-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
219-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
220-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
221-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
222-
Link: </page-data/my-second-post/page-data.json>; rel=preload; as=fetch; crossorigin
223-
/hello-world/
224-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
225-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
226-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
227-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
228-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
229-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
230-
Link: </page-data/hello-world/page-data.json>; rel=preload; as=fetch; crossorigin
231-
/404/
232-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
233-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
234-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
235-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
236-
Link: </component---src-pages-404-js-53e6c51a5a7e73090f50.js>; rel=preload; as=script
237-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
238-
Link: </page-data/404/page-data.json>; rel=preload; as=fetch; crossorigin
239-
/
240-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
241-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
242-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
243-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
244-
Link: </component---src-pages-index-js-0bdd01c77ee09ef0224c.js>; rel=preload; as=script
245-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
246-
Link: </page-data/index/page-data.json>; rel=preload; as=fetch; crossorigin
247-
/404.html
248-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
249-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
250-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
251-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
252-
Link: </component---src-pages-404-js-53e6c51a5a7e73090f50.js>; rel=preload; as=script
253-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
254-
Link: </page-data/404.html/page-data.json>; rel=preload; as=fetch; crossorigin
25571
"
25672
`;
25773

@@ -263,60 +79,5 @@ exports[`build-headers-program without caching headers 1`] = `
26379
X-XSS-Protection: 1; mode=block
26480
X-Content-Type-Options: nosniff
26581
Referrer-Policy: same-origin
266-
/offline-plugin-app-shell-fallback/
267-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
268-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
269-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
270-
Link: </component---node-modules-gatsby-plugin-offline-app-shell-js-78f9e4dea04737fa062d.js>; rel=preload; as=script
271-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
272-
Link: </page-data/offline-plugin-app-shell-fallback/page-data.json>; rel=preload; as=fetch; crossorigin
273-
/hi-folks/
274-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
275-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
276-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
277-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
278-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
279-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
280-
Link: </page-data/hi-folks/page-data.json>; rel=preload; as=fetch; crossorigin
281-
/my-second-post/
282-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
283-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
284-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
285-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
286-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
287-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
288-
Link: </page-data/my-second-post/page-data.json>; rel=preload; as=fetch; crossorigin
289-
/hello-world/
290-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
291-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
292-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
293-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
294-
Link: </component---src-templates-blog-post-js-517987eae96e75cddbe7.js>; rel=preload; as=script
295-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
296-
Link: </page-data/hello-world/page-data.json>; rel=preload; as=fetch; crossorigin
297-
/404/
298-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
299-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
300-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
301-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
302-
Link: </component---src-pages-404-js-53e6c51a5a7e73090f50.js>; rel=preload; as=script
303-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
304-
Link: </page-data/404/page-data.json>; rel=preload; as=fetch; crossorigin
305-
/
306-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
307-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
308-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
309-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
310-
Link: </component---src-pages-index-js-0bdd01c77ee09ef0224c.js>; rel=preload; as=script
311-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
312-
Link: </page-data/index/page-data.json>; rel=preload; as=fetch; crossorigin
313-
/404.html
314-
Link: </webpack-runtime-acaa8994f1f704475e21.js>; rel=preload; as=script
315-
Link: </styles-565f081c8374bbda155f.js>; rel=preload; as=script
316-
Link: </app-f33c13590352da20930f.js>; rel=preload; as=script
317-
Link: </0-0180cd94ef2497ac7db8.js>; rel=preload; as=script
318-
Link: </component---src-pages-404-js-53e6c51a5a7e73090f50.js>; rel=preload; as=script
319-
Link: </page-data/app-data.json>; rel=preload; as=fetch; crossorigin
320-
Link: </page-data/404.html/page-data.json>; rel=preload; as=fetch; crossorigin
32182
"
32283
`;

src/__tests__/build-headers-program.ts

-21
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,6 @@ describe(`build-headers-program`, () => {
2424
existsSync.mockReturnValue(true)
2525
})
2626

27-
it(`with caching headers`, async () => {
28-
const pluginData = await createPluginData()
29-
30-
const pluginOptions = {
31-
...DEFAULT_OPTIONS,
32-
mergeCachingHeaders: true,
33-
}
34-
35-
await buildHeadersProgram(pluginData, pluginOptions, reporter)
36-
37-
expect(reporter.panic).not.toHaveBeenCalled()
38-
const output = await readFile(pluginData.publicFolder(`_headers`), `utf8`)
39-
expect(output).toMatchSnapshot()
40-
expect(output).toMatch(/app-data\.json/)
41-
expect(output).toMatch(/page-data\.json/)
42-
// we should only check page-data & app-data once which leads to 2 times
43-
expect(existsSync).toBeCalledTimes(2)
44-
})
45-
4627
it(`with manifest['pages-manifest']`, async () => {
4728
const pluginData = await createPluginData()
4829

@@ -62,8 +43,6 @@ describe(`build-headers-program`, () => {
6243
const output = await readFile(pluginData.publicFolder(`_headers`), `utf8`)
6344
expect(output).toMatchSnapshot()
6445
expect(output).toMatch(/\/pages-manifest-ab11f09e0ca7ecd3b43e\.js/g)
65-
expect(output).not.toMatch(/\/app-data\.json/g)
66-
expect(output).not.toMatch(/\/page-data\.json/g)
6746
expect(output).not.toMatch(/\/undefined/g)
6847
})
6948

0 commit comments

Comments
 (0)