Skip to content

Commit 2dcdedd

Browse files
committed
feat: upgrade to webpack 4
BREAKING CHANGE: Upgrade wepback 4, all webpack option modifications must be webpcak 4 compatible. Drop support for webpack plugins that do not work with v4 or above.
1 parent 6d4e51d commit 2dcdedd

File tree

28 files changed

+578
-863
lines changed

28 files changed

+578
-863
lines changed

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
"globby": "^8.0.1",
5050
"http-server": "^0.11.1",
5151
"jest": "^22.1.4",
52-
"json-server": "^0.12.2",
5352
"lerna": "^2.8.0",
5453
"lint-staged": "^6.0.1",
5554
"memfs": "^2.6.0",

packages/@vue/cli-plugin-e2e-nightwatch/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
"access": "public"
2323
},
2424
"dependencies": {
25-
"chromedriver": "^2.38.1",
26-
"deepmerge": "^2.0.1",
27-
"execa": "^0.9.0",
25+
"chromedriver": "^2.38.3",
26+
"deepmerge": "^2.1.0",
27+
"execa": "^0.10.0",
2828
"nightwatch": "^0.9.21",
2929
"selenium-server": "^3.11.0"
3030
}

packages/@vue/cli-plugin-pwa/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"access": "public"
2323
},
2424
"dependencies": {
25-
"workbox-webpack-plugin": "^3.1.0"
25+
"workbox-webpack-plugin": "^3.2.0"
2626
},
2727
"devDependencies": {
2828
"register-service-worker": "^1.0.0"

packages/@vue/cli-plugin-typescript/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
"@types/node": "^9.3.0",
2626
"fork-ts-checker-webpack-plugin": "^0.4.1",
2727
"globby": "^8.0.1",
28-
"ts-loader": "^3.4.0",
29-
"tslint": "^5.9.1",
28+
"ts-loader": "^4.3.0",
29+
"tslint": "^5.10.0",
3030
"typescript": "^2.8.3"
3131
},
3232
"devDependencies": {

packages/@vue/cli-plugin-unit-jest/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"access": "public"
2323
},
2424
"dependencies": {
25-
"execa": "^0.9.0",
25+
"execa": "^0.10.0",
2626
"jest": "^22.4.3",
2727
"jest-serializer-vue": "^1.0.0",
2828
"jest-transform-stub": "^1.0.0",

packages/@vue/cli-plugin-unit-mocha/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
},
2222
"homepage": "https://github.com/vuejs/vue-cli/packages/@vue/cli-plugin-unit-mocha#readme",
2323
"dependencies": {
24-
"execa": "^0.9.0",
25-
"jsdom": "^11.6.2",
24+
"execa": "^0.10.0",
25+
"jsdom": "^11.10.0",
2626
"jsdom-global": "^3.0.2",
27-
"mocha": "^4.1.0",
28-
"mocha-webpack": "^1.1.0",
27+
"mocha": "^5.1.1",
28+
"mocha-webpack": "^2.0.0-beta.0",
2929
"webpack-node-externals": "^1.7.2"
3030
},
3131
"devDependencies": {

packages/@vue/cli-service-global/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
"@vue/cli-plugin-babel": "^3.0.0-beta.9",
2626
"@vue/cli-plugin-eslint": "^3.0.0-beta.9",
2727
"@vue/cli-service": "^3.0.0-beta.9",
28-
"chalk": "^2.4.0",
29-
"eslint-plugin-vue": "^4.3.0",
28+
"chalk": "^2.4.1",
29+
"eslint-plugin-vue": "^4.5.0",
3030
"resolve": "^1.7.1",
3131
"vue": "^2.5.16"
3232
}

packages/@vue/cli-service/__tests__/build.spec.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,10 @@ test('build', async () => {
2525

2626
const index = await project.read('dist/index.html')
2727
// should split and preload app.js & vendor.js
28-
expect(index).toMatch(/<link rel=preload [^>]+app[^>]+\.js>/)
29-
expect(index).toMatch(/<link rel=preload [^>]+vendor[^>]+\.js>/)
30-
// should not preload manifest because it's inlined
31-
expect(index).not.toMatch(/<link rel=preload [^>]+manifest[^>]+\.js>/)
32-
// should inline manifest and webpack runtime
33-
expect(index).toMatch('webpackJsonp')
28+
expect(index).toMatch(/<link [^>]+js\/app[^>]+\.js rel=preload>/)
29+
expect(index).toMatch(/<link [^>]+js\/vendors~app[^>]+\.js rel=preload>/)
30+
// should preload css
31+
expect(index).toMatch(/<link [^>]+app[^>]+\.css rel=preload>/)
3432

3533
const port = await portfinder.getPortPromise()
3634
server = createServer({ root: path.join(project.dir, 'dist') })

packages/@vue/cli-service/__tests__/css.spec.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const Service = require('../lib/Service')
22

33
const LANGS = ['css', 'sass', 'scss', 'less', 'styl', 'stylus']
4+
const extractLoaderPath = require('mini-css-extract-plugin').loader
45

56
const LOADERS = {
67
css: 'css',
@@ -36,7 +37,7 @@ const findLoaders = (config, lang) => {
3637
const findOptions = (config, lang, _loader) => {
3738
const rule = findRule(config, lang)
3839
const use = rule.use.find(({ loader }) => loader.includes(`${_loader}-loader`))
39-
return use.options
40+
return use.options || {}
4041
}
4142

4243
test('default loaders', () => {
@@ -58,10 +59,9 @@ test('default loaders', () => {
5859

5960
test('production defaults', () => {
6061
const config = genConfig({ postcss: {}}, 'production')
61-
const extractLoaderPath = require.resolve('extract-text-webpack-plugin/dist/loader')
6262
LANGS.forEach(lang => {
6363
const loader = lang === 'css' ? [] : LOADERS[lang]
64-
expect(findLoaders(config, lang)).toEqual([extractLoaderPath, 'vue-style', 'css', 'postcss'].concat(loader))
64+
expect(findLoaders(config, lang)).toEqual([extractLoaderPath, 'css', 'postcss'].concat(loader))
6565
expect(findOptions(config, lang, 'css')).toEqual({
6666
minimize: true,
6767
sourceMap: false,
@@ -97,7 +97,6 @@ test('css.extract', () => {
9797
}
9898
}
9999
}, 'production')
100-
const extractLoaderPath = require.resolve('extract-text-webpack-plugin/dist/loader')
101100
LANGS.forEach(lang => {
102101
expect(findLoaders(config, lang)).not.toContain(extractLoaderPath)
103102
})

packages/@vue/cli-service/lib/commands/build/resolveLibConfig.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ module.exports = (api, { entry, name }, options) => {
2626

2727
// only minify min entry
2828
if (!/\.min/.test(postfix)) {
29-
config.plugins.delete('uglify')
29+
config.optimization.minimize(false)
3030
}
3131

3232
// externalize Vue in case user imports it

0 commit comments

Comments
 (0)