From 29e73f281e28f6e102fb2297c22df569b67e3c80 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Thu, 10 Oct 2019 13:12:22 +0800 Subject: [PATCH 1/2] Revert "refactor: use EnvironmentPlugin instead of DefinePlugin" This reverts commit 7117a096dffd8664e2fcf9e68880dd9ff3743ced. --- .../cli-service/lib/commands/build/resolveWcConfig.js | 7 ++++--- packages/@vue/cli-service/lib/config/app.js | 2 +- packages/@vue/cli-service/lib/config/base.js | 8 +++----- .../@vue/cli-service/lib/util/resolveClientEnv.js | 11 ++++++++++- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/packages/@vue/cli-service/lib/commands/build/resolveWcConfig.js b/packages/@vue/cli-service/lib/commands/build/resolveWcConfig.js index 7f3a6ceba3..8ecde66d1f 100644 --- a/packages/@vue/cli-service/lib/commands/build/resolveWcConfig.js +++ b/packages/@vue/cli-service/lib/commands/build/resolveWcConfig.js @@ -1,5 +1,4 @@ const path = require('path') -const webpack = require('webpack') const { resolveEntry, fileToComponentName } = require('./resolveWcEntry') module.exports = (api, { target, entry, name, 'inline-vue': inlineVue }) => { @@ -56,8 +55,10 @@ module.exports = (api, { target, entry, name, 'inline-vue': inlineVue }) => { config .plugin('web-component-options') - .use(webpack.EnvironmentPlugin, [{ - CUSTOM_ELEMENT_NAME: libName + .use(require('webpack/lib/DefinePlugin'), [{ + 'process.env': { + CUSTOM_ELEMENT_NAME: JSON.stringify(libName) + } }]) // enable shadow mode in vue-loader diff --git a/packages/@vue/cli-service/lib/config/app.js b/packages/@vue/cli-service/lib/config/app.js index de23998496..c935c291a0 100644 --- a/packages/@vue/cli-service/lib/config/app.js +++ b/packages/@vue/cli-service/lib/config/app.js @@ -98,7 +98,7 @@ module.exports = (api, options) => { files: assets, options: pluginOptions } - }, resolveClientEnv(options)) + }, resolveClientEnv(options, true /* raw */)) } } diff --git a/packages/@vue/cli-service/lib/config/base.js b/packages/@vue/cli-service/lib/config/base.js index 75209a9627..93da1c9c96 100644 --- a/packages/@vue/cli-service/lib/config/base.js +++ b/packages/@vue/cli-service/lib/config/base.js @@ -1,5 +1,3 @@ -const webpack = require('webpack') - module.exports = (api, options) => { api.chainWebpack(webpackConfig => { const isLegacyBundle = process.env.VUE_CLI_MODERN_MODE && !process.env.VUE_CLI_MODERN_BUILD @@ -155,7 +153,7 @@ module.exports = (api, options) => { // prevent webpack from injecting useless setImmediate polyfill because Vue // source contains it (although only uses it if it's native). setImmediate: false, - // process is injected via EnvironmentPlugin, although some 3rd party + // process is injected via DefinePlugin, although some 3rd party // libraries may require a mock to work properly (#934) process: 'mock', // prevent webpack from injecting mocks to Node native modules @@ -169,8 +167,8 @@ module.exports = (api, options) => { const resolveClientEnv = require('../util/resolveClientEnv') webpackConfig - .plugin('process-env') - .use(webpack.EnvironmentPlugin, [ + .plugin('define') + .use(require('webpack/lib/DefinePlugin'), [ resolveClientEnv(options) ]) diff --git a/packages/@vue/cli-service/lib/util/resolveClientEnv.js b/packages/@vue/cli-service/lib/util/resolveClientEnv.js index 8cd05398bf..2aa83f1554 100644 --- a/packages/@vue/cli-service/lib/util/resolveClientEnv.js +++ b/packages/@vue/cli-service/lib/util/resolveClientEnv.js @@ -9,5 +9,14 @@ module.exports = function resolveClientEnv (options, raw) { }) env.BASE_URL = options.publicPath - return env + if (raw) { + return env + } + + for (const key in env) { + env[key] = JSON.stringify(env[key]) + } + return { + 'process.env': env + } } From 0f391e167bcb35b888ff7ad5541a5927b2c859e2 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Thu, 10 Oct 2019 13:26:53 +0800 Subject: [PATCH 2/2] refactor: use the exported DefinePlugin --- .../@vue/cli-service/lib/commands/build/resolveWcConfig.js | 6 ++---- packages/@vue/cli-service/lib/config/base.js | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/@vue/cli-service/lib/commands/build/resolveWcConfig.js b/packages/@vue/cli-service/lib/commands/build/resolveWcConfig.js index 8ecde66d1f..352da456fc 100644 --- a/packages/@vue/cli-service/lib/commands/build/resolveWcConfig.js +++ b/packages/@vue/cli-service/lib/commands/build/resolveWcConfig.js @@ -55,10 +55,8 @@ module.exports = (api, { target, entry, name, 'inline-vue': inlineVue }) => { config .plugin('web-component-options') - .use(require('webpack/lib/DefinePlugin'), [{ - 'process.env': { - CUSTOM_ELEMENT_NAME: JSON.stringify(libName) - } + .use(require('webpack').DefinePlugin, [{ + 'process.env.CUSTOM_ELEMENT_NAME': JSON.stringify(libName) }]) // enable shadow mode in vue-loader diff --git a/packages/@vue/cli-service/lib/config/base.js b/packages/@vue/cli-service/lib/config/base.js index 93da1c9c96..d38d06c498 100644 --- a/packages/@vue/cli-service/lib/config/base.js +++ b/packages/@vue/cli-service/lib/config/base.js @@ -168,7 +168,7 @@ module.exports = (api, options) => { const resolveClientEnv = require('../util/resolveClientEnv') webpackConfig .plugin('define') - .use(require('webpack/lib/DefinePlugin'), [ + .use(require('webpack').DefinePlugin, [ resolveClientEnv(options) ])