From 574610759b1cea9bf41ea43ba484e0aec20b6e90 Mon Sep 17 00:00:00 2001 From: wlarch Date: Mon, 8 Mar 2021 15:31:12 -0500 Subject: [PATCH 1/5] Added ignoreEnv build option to ignore env and process.env fields during ensureBuild(cmd) --- packages/cli/src/utils/generate.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/utils/generate.js b/packages/cli/src/utils/generate.js index 51bb32a232fa..6a8f759c5347 100644 --- a/packages/cli/src/utils/generate.js +++ b/packages/cli/src/utils/generate.js @@ -89,7 +89,13 @@ export async function ensureBuild (cmd) { // Quick diff let needBuild = false - for (const field of ['nuxtVersion', 'ssr', 'target', 'env', 'process.env']) { + let fields = ['nuxtVersion', 'ssr', 'target', 'env', 'process.env'] + + if (nuxt.options.build.ignoreEnv === true) { + fields = fields.filter(field => !['env', 'process.env'].includes(field)) + } + + for (const field of fields) { if (JSON.stringify(previousBuild[field]) !== JSON.stringify(currentBuild[field])) { needBuild = true consola.info(`Doing webpack rebuild because ${field} changed`) From 29aac686bb4df44f25ab4670be66fceeb3141003 Mon Sep 17 00:00:00 2001 From: wlarch Date: Mon, 8 Mar 2021 15:39:16 -0500 Subject: [PATCH 2/5] Added test suite for full-static-with-ignore-env --- .../full-static-with-ignore-env.test.js | 3 ++ .../layouts/default.vue | 40 +++++++++++++++++++ .../nuxt.config.js | 30 ++++++++++++++ .../pages/dynamic/_name.vue | 10 +++++ .../encoding/\344\270\255\346\226\207.vue" | 5 +++ .../pages/index.vue | 5 +++ .../pages/pagination/_i.vue | 21 ++++++++++ .../pages/payload.vue | 13 ++++++ .../pages/store.vue | 18 +++++++++ .../full-static-with-ignore-env/store/auth.js | 17 ++++++++ .../store/index.js | 9 +++++ 11 files changed, 171 insertions(+) create mode 100644 test/fixtures/full-static-with-ignore-env/full-static-with-ignore-env.test.js create mode 100644 test/fixtures/full-static-with-ignore-env/layouts/default.vue create mode 100644 test/fixtures/full-static-with-ignore-env/nuxt.config.js create mode 100644 test/fixtures/full-static-with-ignore-env/pages/dynamic/_name.vue create mode 100644 "test/fixtures/full-static-with-ignore-env/pages/encoding/\344\270\255\346\226\207.vue" create mode 100644 test/fixtures/full-static-with-ignore-env/pages/index.vue create mode 100644 test/fixtures/full-static-with-ignore-env/pages/pagination/_i.vue create mode 100644 test/fixtures/full-static-with-ignore-env/pages/payload.vue create mode 100644 test/fixtures/full-static-with-ignore-env/pages/store.vue create mode 100644 test/fixtures/full-static-with-ignore-env/store/auth.js create mode 100644 test/fixtures/full-static-with-ignore-env/store/index.js diff --git a/test/fixtures/full-static-with-ignore-env/full-static-with-ignore-env.test.js b/test/fixtures/full-static-with-ignore-env/full-static-with-ignore-env.test.js new file mode 100644 index 000000000000..247224a959a6 --- /dev/null +++ b/test/fixtures/full-static-with-ignore-env/full-static-with-ignore-env.test.js @@ -0,0 +1,3 @@ +import { buildFixture } from '../../utils/build' + +buildFixture('full-static-with-ignore-env') diff --git a/test/fixtures/full-static-with-ignore-env/layouts/default.vue b/test/fixtures/full-static-with-ignore-env/layouts/default.vue new file mode 100644 index 000000000000..3a4cef87f6a2 --- /dev/null +++ b/test/fixtures/full-static-with-ignore-env/layouts/default.vue @@ -0,0 +1,40 @@ + + + diff --git a/test/fixtures/full-static-with-ignore-env/nuxt.config.js b/test/fixtures/full-static-with-ignore-env/nuxt.config.js new file mode 100644 index 000000000000..0e0c2af49792 --- /dev/null +++ b/test/fixtures/full-static-with-ignore-env/nuxt.config.js @@ -0,0 +1,30 @@ +export default { + target: 'static', + export: { + payload: { + config: true + } + }, + router: { + // base: '/test', + }, + build: { + ignoreEnv: true + }, + foo: { + shell: process.env.SHELL + }, + env: { + x: 123 + }, + hooks: { + export: { + before ({ setPayload }) { + setPayload({ shared: true }) + }, + route ({ route, setPayload }) { + setPayload({ myRoute: route }) + } + } + } +} diff --git a/test/fixtures/full-static-with-ignore-env/pages/dynamic/_name.vue b/test/fixtures/full-static-with-ignore-env/pages/dynamic/_name.vue new file mode 100644 index 000000000000..3fa49a55d970 --- /dev/null +++ b/test/fixtures/full-static-with-ignore-env/pages/dynamic/_name.vue @@ -0,0 +1,10 @@ + + + diff --git "a/test/fixtures/full-static-with-ignore-env/pages/encoding/\344\270\255\346\226\207.vue" "b/test/fixtures/full-static-with-ignore-env/pages/encoding/\344\270\255\346\226\207.vue" new file mode 100644 index 000000000000..f75d238f97ab --- /dev/null +++ "b/test/fixtures/full-static-with-ignore-env/pages/encoding/\344\270\255\346\226\207.vue" @@ -0,0 +1,5 @@ + diff --git a/test/fixtures/full-static-with-ignore-env/pages/index.vue b/test/fixtures/full-static-with-ignore-env/pages/index.vue new file mode 100644 index 000000000000..90cf992ac262 --- /dev/null +++ b/test/fixtures/full-static-with-ignore-env/pages/index.vue @@ -0,0 +1,5 @@ + diff --git a/test/fixtures/full-static-with-ignore-env/pages/pagination/_i.vue b/test/fixtures/full-static-with-ignore-env/pages/pagination/_i.vue new file mode 100644 index 000000000000..610dbb1e735d --- /dev/null +++ b/test/fixtures/full-static-with-ignore-env/pages/pagination/_i.vue @@ -0,0 +1,21 @@ + + + diff --git a/test/fixtures/full-static-with-ignore-env/pages/payload.vue b/test/fixtures/full-static-with-ignore-env/pages/payload.vue new file mode 100644 index 000000000000..4243a3f509a6 --- /dev/null +++ b/test/fixtures/full-static-with-ignore-env/pages/payload.vue @@ -0,0 +1,13 @@ + + + diff --git a/test/fixtures/full-static-with-ignore-env/pages/store.vue b/test/fixtures/full-static-with-ignore-env/pages/store.vue new file mode 100644 index 000000000000..fb10b6045d85 --- /dev/null +++ b/test/fixtures/full-static-with-ignore-env/pages/store.vue @@ -0,0 +1,18 @@ + + + diff --git a/test/fixtures/full-static-with-ignore-env/store/auth.js b/test/fixtures/full-static-with-ignore-env/store/auth.js new file mode 100644 index 000000000000..3035efcf64a9 --- /dev/null +++ b/test/fixtures/full-static-with-ignore-env/store/auth.js @@ -0,0 +1,17 @@ +export const state = () => ({ + user: null +}) + +export const mutations = { + SET_USER (state, user) { + state.user = user + } +} + +export const actions = { + FETCH_USER ({ commit }) { + commit('SET_USER', { + name: (process.client ? 'C' : 'S') + ' Æ A-' + (10 + Math.round(Math.random() * 10)) + }) + } +} diff --git a/test/fixtures/full-static-with-ignore-env/store/index.js b/test/fixtures/full-static-with-ignore-env/store/index.js new file mode 100644 index 000000000000..5b42ad2b452c --- /dev/null +++ b/test/fixtures/full-static-with-ignore-env/store/index.js @@ -0,0 +1,9 @@ +export const state = () => ({ + counter: 0 +}) + +export const mutations = { + COUNT (state) { + state.counter += 1 + } +} From 0f228f801faa1c5e0dbe16d859fb557a6da34367 Mon Sep 17 00:00:00 2001 From: wlarch Date: Wed, 10 Mar 2021 15:05:01 -0500 Subject: [PATCH 3/5] Opted for generate option instead of build option, refactored condition --- packages/cli/src/utils/generate.js | 7 ++++--- test/fixtures/full-static-with-ignore-env/nuxt.config.js | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/cli/src/utils/generate.js b/packages/cli/src/utils/generate.js index 6a8f759c5347..2b97726ce05d 100644 --- a/packages/cli/src/utils/generate.js +++ b/packages/cli/src/utils/generate.js @@ -89,10 +89,11 @@ export async function ensureBuild (cmd) { // Quick diff let needBuild = false - let fields = ['nuxtVersion', 'ssr', 'target', 'env', 'process.env'] - if (nuxt.options.build.ignoreEnv === true) { - fields = fields.filter(field => !['env', 'process.env'].includes(field)) + const fields = ['nuxtVersion', 'ssr', 'target'] + + if (nuxt.options.generate.ignoreEnv !== true) { + fields.push('env', 'process.env') } for (const field of fields) { diff --git a/test/fixtures/full-static-with-ignore-env/nuxt.config.js b/test/fixtures/full-static-with-ignore-env/nuxt.config.js index 0e0c2af49792..eb355603fada 100644 --- a/test/fixtures/full-static-with-ignore-env/nuxt.config.js +++ b/test/fixtures/full-static-with-ignore-env/nuxt.config.js @@ -8,7 +8,7 @@ export default { router: { // base: '/test', }, - build: { + generate: { ignoreEnv: true }, foo: { From 55fb7724f228c464025892785413f9706c80a2ec Mon Sep 17 00:00:00 2001 From: wlarch Date: Wed, 10 Mar 2021 15:29:41 -0500 Subject: [PATCH 4/5] Added type & default for ignoreEnv generate option --- packages/config/src/config/generate.js | 1 + packages/types/config/generate.d.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/config/src/config/generate.js b/packages/config/src/config/generate.js index 4aa33eb1cf07..18003ab15d15 100644 --- a/packages/config/src/config/generate.js +++ b/packages/config/src/config/generate.js @@ -3,6 +3,7 @@ export default () => ({ routes: [], exclude: [], concurrency: 500, + ignoreEnv: false, interval: 0, subFolders: true, fallback: '200.html', diff --git a/packages/types/config/generate.d.ts b/packages/types/config/generate.d.ts index 72153abba29c..1925060e9795 100644 --- a/packages/types/config/generate.d.ts +++ b/packages/types/config/generate.d.ts @@ -17,6 +17,7 @@ export interface NuxtOptionsGenerate { dir?: string exclude?: RegExp[] fallback?: string | boolean + ignoreEnv?: boolean interval?: number routes?: NuxtOptionsGenerateRoute[] | NuxtOptionsGenerateRoutesFunction | NuxtOptionsGenerateRoutesFunctionWithCallback subFolders?: boolean From 67b41b10f77ca0049568014fea2f8a509781d2f9 Mon Sep 17 00:00:00 2001 From: wlarch Date: Wed, 10 Mar 2021 15:35:47 -0500 Subject: [PATCH 5/5] Added ignoreEnv to snap config --- packages/config/test/__snapshots__/options.test.js.snap | 1 + packages/config/test/config/__snapshots__/index.test.js.snap | 2 ++ 2 files changed, 3 insertions(+) diff --git a/packages/config/test/__snapshots__/options.test.js.snap b/packages/config/test/__snapshots__/options.test.js.snap index 9480f671e465..10abaeae276a 100644 --- a/packages/config/test/__snapshots__/options.test.js.snap +++ b/packages/config/test/__snapshots__/options.test.js.snap @@ -216,6 +216,7 @@ Object { "dir": "/var/nuxt/test/dist", "exclude": Array [], "fallback": "200.html", + "ignoreEnv": false, "interval": 0, "manifest": true, "routes": Array [], diff --git a/packages/config/test/config/__snapshots__/index.test.js.snap b/packages/config/test/config/__snapshots__/index.test.js.snap index f9727735ef4e..8f75a62d9cc5 100644 --- a/packages/config/test/config/__snapshots__/index.test.js.snap +++ b/packages/config/test/config/__snapshots__/index.test.js.snap @@ -191,6 +191,7 @@ Object { "dir": "dist", "exclude": Array [], "fallback": "200.html", + "ignoreEnv": false, "interval": 0, "manifest": true, "routes": Array [], @@ -576,6 +577,7 @@ Object { "dir": "dist", "exclude": Array [], "fallback": "200.html", + "ignoreEnv": false, "interval": 0, "manifest": true, "routes": Array [],