From 5dc5e345500f437bb4332cee541dfe4af59e8254 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 25 Nov 2020 12:38:24 +0000 Subject: [PATCH] fix: completely disable support for global `useMeta` if `@nuxtjs/pwa` detected https://github.com/nuxt-community/composition-api/issues/307 --- package.json | 1 - src/index.ts | 13 ++++++++++++- test/e2e/meta.ts | 12 ++++++------ test/fixture/nuxt.config.js | 1 - yarn.lock | 35 ++--------------------------------- 5 files changed, 20 insertions(+), 42 deletions(-) diff --git a/package.json b/package.json index 84bd38a0..0006b2bc 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,6 @@ "@babel/preset-typescript": "^7.12.7", "@nuxt/types": "^2.14.7", "@nuxtjs/module-test-utils": "^1.6.3", - "@nuxtjs/pwa": "^3.2.2", "@release-it/conventional-changelog": "^2.0.0", "@types/fs-extra": "^9.0.4", "@types/jest": "^26.0.15", diff --git a/src/index.ts b/src/index.ts index 7d72294d..7113c07c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -106,7 +106,18 @@ const compositionApiModule: Module = function () { this.options.plugins = this.options.plugins || [] this.options.plugins.unshift(resolve(this.options.buildDir || '', pluginDst)) - this.options.plugins.push(resolve(this.options.buildDir || '', metaPluginDst)) + if ( + !(this.nuxt.options.buildModules || []).includes('@nuxtjs/pwa') && + !this.nuxt.options.modules.includes('@nuxtjs/pwa') + ) { + this.options.plugins.push( + resolve(this.options.buildDir || '', metaPluginDst) + ) + } else if (this.nuxt.options.dev) { + console.warn( + 'useMeta is not supported in onGlobalSetup as @nuxtjs/pwa detected.\nSee https://github.com/nuxt-community/composition-api/issues/307' + ) + } } export default compositionApiModule diff --git a/test/e2e/meta.ts b/test/e2e/meta.ts index 5a9a0803..4933c02f 100644 --- a/test/e2e/meta.ts +++ b/test/e2e/meta.ts @@ -19,9 +19,9 @@ test('Shows correct title on server-loaded page', async t => { await t .expect(Selector('meta[name=message]').getAttribute('content')) .eql('new message') - await t - .expect(Selector('meta[name=viewport]').getAttribute('content')) - .eql('width=device-width, initial-scale=1') + // await t + // .expect(Selector('meta[name=viewport]').getAttribute('content')) + // .eql('width=device-width, initial-scale=1') await t.expect(Selector('noscript').textContent).eql('Test') await t.click(Selector('a').withText('back')) @@ -44,8 +44,8 @@ test('Shows correct title on client-loaded page', async t => { await t .expect(Selector('meta[name=message]').getAttribute('content')) .eql('new message') - await t - .expect(Selector('meta[name=viewport]').getAttribute('content')) - .eql('width=device-width, initial-scale=1') + // await t + // .expect(Selector('meta[name=viewport]').getAttribute('content')) + // .eql('width=device-width, initial-scale=1') await t.expect(Selector('noscript').textContent).eql('Test') }) diff --git a/test/fixture/nuxt.config.js b/test/fixture/nuxt.config.js index 81359e9f..fd96648a 100644 --- a/test/fixture/nuxt.config.js +++ b/test/fixture/nuxt.config.js @@ -68,7 +68,6 @@ module.exports = { }, buildModules: [ process.env.NODE_ENV === 'test' ? require('../..').default : rootDir, - '@nuxtjs/pwa', ], pwa: { icon: false, diff --git a/yarn.lock b/yarn.lock index 0b8304d7..fa849741 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1531,19 +1531,6 @@ request "^2.88.2" request-promise-native "^1.0.8" -"@nuxtjs/pwa@^3.2.2": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@nuxtjs/pwa/-/pwa-3.2.2.tgz#e03c632e30f3df287a842d67323d945f36b97440" - integrity sha512-B+2VKwmaw40Wyds0hOKuN9R8ODHg7de8B7uQbzaZpLNuCinfKioQOk8jjaLDKRf4sndNG4AYI90Et4M+MRQetQ== - dependencies: - defu "^3.1.0" - execa "^4.0.3" - fs-extra "^9.0.1" - hasha "^5.2.2" - jimp-compact "^0.16.1" - lodash.template "^4.5.0" - workbox-cdn "^5.1.3" - "@nuxtjs/youch@^4.2.3": version "4.2.3" resolved "https://registry.yarnpkg.com/@nuxtjs/youch/-/youch-4.2.3.tgz#36f8b22df5a0efaa81373109851e1d857aca6bed" @@ -5603,7 +5590,7 @@ defu@^2.0.4: resolved "https://registry.yarnpkg.com/defu/-/defu-2.0.4.tgz#09659a6e87a8fd7178be13bd43e9357ebf6d1c46" integrity sha512-G9pEH1UUMxShy6syWk01VQSRVs3CDWtlxtZu7A+NyqjxaCA4gSlWAKDBx6QiUEKezqS8+DUlXLI14Fp05Hmpwg== -defu@^3.1.0, defu@^3.2.2: +defu@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/defu/-/defu-3.2.2.tgz#be20f4cc49b9805d54ee6b610658d53894942e97" integrity sha512-8UWj5lNv7HD+kB0e9w77Z7TdQlbUYDVWqITLHNqFIn6khrNHv5WQo38Dcm1f6HeNyZf0U7UbPf6WeZDSdCzGDQ== @@ -7339,14 +7326,6 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasha@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" - integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== - dependencies: - is-stream "^2.0.0" - type-fest "^0.8.0" - he@1.2.0, he@^1.1.0, he@^1.1.1, he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -8708,11 +8687,6 @@ jest@^26.6.3: import-local "^3.0.2" jest-cli "^26.6.3" -jimp-compact@^0.16.1: - version "0.16.1" - resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3" - integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww== - jiti@^0.1.11, jiti@^0.1.12: version "0.1.12" resolved "https://registry.yarnpkg.com/jiti/-/jiti-0.1.12.tgz#ffe4a09266d739b77721170fb73115c50b680330" @@ -13759,7 +13733,7 @@ type-fest@^0.6.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -type-fest@^0.8.0, type-fest@^0.8.1: +type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== @@ -14505,11 +14479,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -workbox-cdn@^5.1.3: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-cdn/-/workbox-cdn-5.1.4.tgz#dbd8acee70b1978be70106207590bbb76af935cf" - integrity sha512-04gM3mi8QGutokkSaA9xunVfjURnLbo9TTWyi8+pSDCEW5cD8u5GbJiliLK1vB9CShk/9OY1UDfW+XcmD+d6KQ== - worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"