From e667c7284203f0ab7b98e64fcd0c45b54b9ff9ad Mon Sep 17 00:00:00 2001 From: Andreas Pizsa Date: Mon, 5 Nov 2018 20:56:27 +0100 Subject: [PATCH 1/4] fix: treat webmanifest as an entry module treat webmanifest as an entry module so it doesn't get content hashed closes #1466 --- .../parcel-bundler/src/assets/HTMLAsset.js | 15 ++++++++++++++ packages/core/parcel-bundler/test/html.js | 20 +++++++++++++++++++ .../test/integration/html-manifest/index.html | 8 ++++++++ .../html-manifest/manifest.webmanifest | 3 +++ 4 files changed, 46 insertions(+) create mode 100644 packages/core/parcel-bundler/test/integration/html-manifest/index.html create mode 100644 packages/core/parcel-bundler/test/integration/html-manifest/manifest.webmanifest diff --git a/packages/core/parcel-bundler/src/assets/HTMLAsset.js b/packages/core/parcel-bundler/src/assets/HTMLAsset.js index 1e561c7436c..d23aacdf700 100644 --- a/packages/core/parcel-bundler/src/assets/HTMLAsset.js +++ b/packages/core/parcel-bundler/src/assets/HTMLAsset.js @@ -153,6 +153,20 @@ class HTMLAsset extends Asset { } } + if ( + node.tag === 'link' && + node.attrs.rel === 'manifest' && + node.attrs.href + ) { + node.attrs.href = this.getAttrDepHandler('href').call( + this, + node.attrs.href, + {entry: true} + ); + this.isAstDirty = true; + return node; + } + for (let attr in node.attrs) { let elements = ATTRS[attr]; // Check for virtual paths @@ -163,6 +177,7 @@ class HTMLAsset extends Asset { if (elements && elements.includes(node.tag)) { let depHandler = this.getAttrDepHandler(attr); let options = OPTIONS[node.tag]; + node.attrs[attr] = depHandler.call( this, node.attrs[attr], diff --git a/packages/core/parcel-bundler/test/html.js b/packages/core/parcel-bundler/test/html.js index b5574abf088..86576636b2e 100644 --- a/packages/core/parcel-bundler/test/html.js +++ b/packages/core/parcel-bundler/test/html.js @@ -591,6 +591,26 @@ describe('html', function() { }); }); + it("should treat webmanifest as an entry module so it doesn't get content hashed", async function() { + const b = await bundle( + path.join(__dirname, '/integration/html-manifest/index.html') + ); + + await assertBundleTree(b, { + name: 'index.html', + assets: ['index.html'], + childBundles: [ + { + type: 'webmanifest', + assets: ['manifest.webmanifest'] + } + ] + }); + + const html = await fs.readFile(path.join(__dirname, '/dist/index.html')); + assert(html.includes('')); + }); + it('should bundle svg files correctly', async function() { let b = await bundle( path.join(__dirname, '/integration/html-svg/index.html') diff --git a/packages/core/parcel-bundler/test/integration/html-manifest/index.html b/packages/core/parcel-bundler/test/integration/html-manifest/index.html new file mode 100644 index 00000000000..eee9d552a13 --- /dev/null +++ b/packages/core/parcel-bundler/test/integration/html-manifest/index.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/core/parcel-bundler/test/integration/html-manifest/manifest.webmanifest b/packages/core/parcel-bundler/test/integration/html-manifest/manifest.webmanifest new file mode 100644 index 00000000000..17971333806 --- /dev/null +++ b/packages/core/parcel-bundler/test/integration/html-manifest/manifest.webmanifest @@ -0,0 +1,3 @@ +{ + +} From 4a14b6a57248e01e779ee16102cf4c3f6850a965 Mon Sep 17 00:00:00 2001 From: Andreas Pizsa Date: Mon, 5 Nov 2018 21:19:57 +0100 Subject: [PATCH 2/4] Update packages/core/parcel-bundler/src/assets/HTMLAsset.js --- packages/core/parcel-bundler/src/assets/HTMLAsset.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core/parcel-bundler/src/assets/HTMLAsset.js b/packages/core/parcel-bundler/src/assets/HTMLAsset.js index d23aacdf700..e2646c7fbee 100644 --- a/packages/core/parcel-bundler/src/assets/HTMLAsset.js +++ b/packages/core/parcel-bundler/src/assets/HTMLAsset.js @@ -177,7 +177,6 @@ class HTMLAsset extends Asset { if (elements && elements.includes(node.tag)) { let depHandler = this.getAttrDepHandler(attr); let options = OPTIONS[node.tag]; - node.attrs[attr] = depHandler.call( this, node.attrs[attr], From 34a7a21d160907f78c9901e4f45fbcff9015c2dd Mon Sep 17 00:00:00 2001 From: Andreas Pizsa Date: Tue, 6 Nov 2018 15:33:25 +0100 Subject: [PATCH 3/4] test(workerfarm): enable longer timeouts --- packages/core/workers/test/mocha.opts | 3 ++- packages/core/workers/test/workerfarm.js | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/core/workers/test/mocha.opts b/packages/core/workers/test/mocha.opts index 25e899b94a7..829b5e4370c 100644 --- a/packages/core/workers/test/mocha.opts +++ b/packages/core/workers/test/mocha.opts @@ -1,2 +1,3 @@ --require @parcel/babel-register ---exit \ No newline at end of file +--exit +--timeout 20s diff --git a/packages/core/workers/test/workerfarm.js b/packages/core/workers/test/workerfarm.js index 6170d484f72..17e6da7b498 100644 --- a/packages/core/workers/test/workerfarm.js +++ b/packages/core/workers/test/workerfarm.js @@ -1,7 +1,7 @@ const assert = require('assert'); const WorkerFarm = require('../index'); -describe('WorkerFarm', () => { +describe('WorkerFarm', function() { it('Should start up workers', async () => { let workerfarm = new WorkerFarm( {}, From ec2e7539d6e972b00491bb1403614a6974169637 Mon Sep 17 00:00:00 2001 From: Andreas Pizsa Date: Tue, 6 Nov 2018 15:48:09 +0100 Subject: [PATCH 4/4] Update packages/core/workers/test/workerfarm.js --- packages/core/workers/test/workerfarm.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/workers/test/workerfarm.js b/packages/core/workers/test/workerfarm.js index 17e6da7b498..6170d484f72 100644 --- a/packages/core/workers/test/workerfarm.js +++ b/packages/core/workers/test/workerfarm.js @@ -1,7 +1,7 @@ const assert = require('assert'); const WorkerFarm = require('../index'); -describe('WorkerFarm', function() { +describe('WorkerFarm', () => { it('Should start up workers', async () => { let workerfarm = new WorkerFarm( {},