From b97abc021ca219dc45d4d5ea8749e2362ce8ca77 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Wed, 27 May 2020 21:37:50 +0800 Subject: [PATCH 1/2] fix: should not install corresponding webdriver if the browser is unselected --- .../generator/index.js | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/packages/@vue/cli-plugin-e2e-nightwatch/generator/index.js b/packages/@vue/cli-plugin-e2e-nightwatch/generator/index.js index 7c85e2d803..dbda54171f 100644 --- a/packages/@vue/cli-plugin-e2e-nightwatch/generator/index.js +++ b/packages/@vue/cli-plugin-e2e-nightwatch/generator/index.js @@ -1,30 +1,33 @@ const { installedBrowsers } = require('@vue/cli-shared-utils') -module.exports = api => { +module.exports = (api, { webdrivers }) => { api.render('./template', { hasTS: api.hasPlugin('typescript'), hasESLint: api.hasPlugin('eslint') }) + const devDependencies = {} + // Use devDependencies to store latest version number so as to automate update - const devDeps = require('../package.json').devDependencies - const geckodriver = devDeps.geckodriver + const pluginDeps = require('../package.json').devDependencies - // chromedriver major version bumps every 6 weeks following Chrome - // so there may be a mismatch between - // user's installed browser version and the default provided version - // fallback to the devDependencies version in case detection fails - const chromedriver = installedBrowsers.chrome - ? installedBrowsers.chrome.match(/^(\d+)\./)[1] - : devDeps.chromedriver + if (webdrivers.includes('firefox')) { + devDependencies.geckodriver = pluginDeps.geckodriver + } + if (webdrivers.includes('chrome')) { + // chromedriver major version bumps every 6 weeks following Chrome + // so there may be a mismatch between + // user's installed browser version and the default provided version + // fallback to the devDependencies version in case detection fails + devDependencies.chromedriver = installedBrowsers.chrome + ? installedBrowsers.chrome.match(/^(\d+)\./)[1] + : pluginDeps.chromedriver + } api.extendPackage({ scripts: { 'test:e2e': 'vue-cli-service test:e2e' }, - devDependencies: { - chromedriver, - geckodriver - } + devDependencies }) } From a2146457ed6f1af9d32733ecd9cd5b278cc77f27 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Thu, 18 Jun 2020 15:20:09 +0800 Subject: [PATCH 2/2] fix: support presets that do not specify `webdrivers` option --- packages/@vue/cli-plugin-e2e-nightwatch/generator/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@vue/cli-plugin-e2e-nightwatch/generator/index.js b/packages/@vue/cli-plugin-e2e-nightwatch/generator/index.js index dbda54171f..3ead67a59b 100644 --- a/packages/@vue/cli-plugin-e2e-nightwatch/generator/index.js +++ b/packages/@vue/cli-plugin-e2e-nightwatch/generator/index.js @@ -11,10 +11,10 @@ module.exports = (api, { webdrivers }) => { // Use devDependencies to store latest version number so as to automate update const pluginDeps = require('../package.json').devDependencies - if (webdrivers.includes('firefox')) { + if (webdrivers && webdrivers.includes('firefox')) { devDependencies.geckodriver = pluginDeps.geckodriver } - if (webdrivers.includes('chrome')) { + if (webdrivers && webdrivers.includes('chrome')) { // chromedriver major version bumps every 6 weeks following Chrome // so there may be a mismatch between // user's installed browser version and the default provided version