|
1 | 1 | const { installedBrowsers } = require('@vue/cli-shared-utils')
|
2 | 2 |
|
3 |
| -module.exports = api => { |
| 3 | +module.exports = (api, { webdrivers }) => { |
4 | 4 | api.render('./template', {
|
5 | 5 | hasTS: api.hasPlugin('typescript'),
|
6 | 6 | hasESLint: api.hasPlugin('eslint')
|
7 | 7 | })
|
8 | 8 |
|
| 9 | + const devDependencies = {} |
| 10 | + |
9 | 11 | // Use devDependencies to store latest version number so as to automate update
|
10 |
| - const devDeps = require('../package.json').devDependencies |
11 |
| - const geckodriver = devDeps.geckodriver |
| 12 | + const pluginDeps = require('../package.json').devDependencies |
12 | 13 |
|
13 |
| - // chromedriver major version bumps every 6 weeks following Chrome |
14 |
| - // so there may be a mismatch between |
15 |
| - // user's installed browser version and the default provided version |
16 |
| - // fallback to the devDependencies version in case detection fails |
17 |
| - const chromedriver = installedBrowsers.chrome |
18 |
| - ? installedBrowsers.chrome.match(/^(\d+)\./)[1] |
19 |
| - : devDeps.chromedriver |
| 14 | + if (webdrivers && webdrivers.includes('firefox')) { |
| 15 | + devDependencies.geckodriver = pluginDeps.geckodriver |
| 16 | + } |
| 17 | + if (webdrivers && webdrivers.includes('chrome')) { |
| 18 | + // chromedriver major version bumps every 6 weeks following Chrome |
| 19 | + // so there may be a mismatch between |
| 20 | + // user's installed browser version and the default provided version |
| 21 | + // fallback to the devDependencies version in case detection fails |
| 22 | + devDependencies.chromedriver = installedBrowsers.chrome |
| 23 | + ? installedBrowsers.chrome.match(/^(\d+)\./)[1] |
| 24 | + : pluginDeps.chromedriver |
| 25 | + } |
20 | 26 |
|
21 | 27 | api.extendPackage({
|
22 | 28 | scripts: {
|
23 | 29 | 'test:e2e': 'vue-cli-service test:e2e'
|
24 | 30 | },
|
25 |
| - devDependencies: { |
26 |
| - chromedriver, |
27 |
| - geckodriver |
28 |
| - } |
| 31 | + devDependencies |
29 | 32 | })
|
30 | 33 | }
|
0 commit comments