mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-01-24 08:08:54 -06:00
52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
const { semver } = require('@vue/cli-shared-utils')
|
|
|
|
/** @type {import('@vue/cli').GeneratorPlugin} */
|
|
module.exports = (api) => {
|
|
api.extendPackage({
|
|
devDependencies: {
|
|
webpack: '^4.0.0'
|
|
},
|
|
// Force resolutions is more reliable than module-alias
|
|
// Yarn and PNPM 5.10+ support this feature
|
|
// So we'll try to use that whenever possible
|
|
resolutions: {
|
|
'@vue/cli-*/webpack': '^4.0.0',
|
|
'html-webpack-plugin': '^4.5.1'
|
|
}
|
|
})
|
|
|
|
api.extendPackage(
|
|
(pkg) => {
|
|
const oldDevDeps = pkg.devDependencies
|
|
const newDevDeps = {}
|
|
const unsupportedRanges = {
|
|
'less-loader': '>= 8.0.0',
|
|
'sass-loader': '>= 11.0.0',
|
|
'stylus-loader': '>= 5.0.0'
|
|
}
|
|
const maxSupportedRanges = {
|
|
'less-loader': '^7.3.0',
|
|
'sass-loader': '^10.1.1',
|
|
'stylus-loader': '^4.3.3'
|
|
}
|
|
|
|
for (const loader of ['less-loader', 'sass-loader', 'stylus-loader']) {
|
|
if (
|
|
oldDevDeps[loader] &&
|
|
semver.intersects(oldDevDeps[loader], unsupportedRanges[loader])
|
|
) {
|
|
newDevDeps[loader] = maxSupportedRanges[loader]
|
|
}
|
|
}
|
|
|
|
const toMerge = { devDependencies: newDevDeps }
|
|
|
|
return toMerge
|
|
},
|
|
{
|
|
warnIncompatibleVersions: false,
|
|
forceOverwrite: true
|
|
}
|
|
)
|
|
}
|