build: set compiler-sfc peerDep on vue

This commit is contained in:
Evan You
2019-12-17 21:51:41 -05:00
parent d84cf3a538
commit c1959fa64d
2 changed files with 17 additions and 10 deletions

View File

@@ -119,19 +119,23 @@ function updateVersions(version) {
function updatePackage(pkgRoot, version) {
const pkg = readPkg(pkgRoot)
pkg.version = version
if (pkg.dependencies) {
Object.keys(pkg.dependencies).forEach(dep => {
if (
dep.startsWith('@vue') &&
packages.includes(dep.replace(/^@vue\//, ''))
) {
pkg.dependencies[dep] = version
}
})
}
updateDeps(pkg.dependencies)
updateDeps(pkg.peerDependencies)
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n')
}
function updateDeps(deps, version) {
if (!deps) return
Object.keys(deps).forEach(dep => {
if (
dep === 'vue' ||
(dep.startsWith('@vue') && packages.includes(dep.replace(/^@vue\//, '')))
) {
deps[dep] = version
}
})
}
function readPkg(pkgRoot) {
const pkgPath = path.resolve(pkgRoot, 'package.json')
return JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))