ci: add autoInstall
添加更新vuepress相关依赖脚本
This commit is contained in:
parent
29d1705da5
commit
3fdc41ccb5
@ -9,11 +9,11 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vuepress-plume/vuepress-theme-plume": "workspace:*",
|
"@vuepress-plume/vuepress-theme-plume": "workspace:*",
|
||||||
"@vuepress/bundler-vite": "^2.0.0-beta.41",
|
"@vuepress/bundler-vite": "2.0.0-beta.41",
|
||||||
"@vuepress/bundler-webpack": "^2.0.0-beta.41",
|
"@vuepress/bundler-webpack": "2.0.0-beta.41",
|
||||||
"@vuepress/cli": "^2.0.0-beta.41",
|
"@vuepress/cli": "2.0.0-beta.41",
|
||||||
"@vuepress/client": "^2.0.0-beta.41",
|
"@vuepress/client": "2.0.0-beta.41",
|
||||||
"@vuepress/utils": "^2.0.0-beta.41",
|
"@vuepress/utils": "2.0.0-beta.41",
|
||||||
"anywhere": "^1.5.0",
|
"anywhere": "^1.5.0",
|
||||||
"sass-loader": "^12.6.0",
|
"sass-loader": "^12.6.0",
|
||||||
"vue": "^3.2.33"
|
"vue": "^3.2.33"
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"author": "pengzhanbo",
|
"author": "pengzhanbo",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"autoUpdate": "node scripts/autoInstall.js",
|
||||||
"build": "pnpm run build:package",
|
"build": "pnpm run build:package",
|
||||||
"build:package": "pnpm --filter=!vuepress-theme-plume run -r --stream build",
|
"build:package": "pnpm --filter=!vuepress-theme-plume run -r --stream build",
|
||||||
"commit": "cz",
|
"commit": "cz",
|
||||||
@ -15,7 +16,6 @@
|
|||||||
"docs:clean": "pnpm --filter=docs docs:clean",
|
"docs:clean": "pnpm --filter=docs docs:clean",
|
||||||
"docs:serve": "pnpm --filter=docs docs:serve",
|
"docs:serve": "pnpm --filter=docs docs:serve",
|
||||||
"lint": "eslint --ext .js,.ts,.vue .",
|
"lint": "eslint --ext .js,.ts,.vue .",
|
||||||
"package:update": "node scripts/dependencies.js",
|
|
||||||
"prepare": "husky install",
|
"prepare": "husky install",
|
||||||
"release": "pnpm release:check && pnpm release:version && pnpm release:publish",
|
"release": "pnpm release:check && pnpm release:version && pnpm release:publish",
|
||||||
"release:changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
|
"release:changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
|
||||||
|
|||||||
@ -24,10 +24,10 @@
|
|||||||
"ts:watch": "tsc -b tsconfig.build.json --watch"
|
"ts:watch": "tsc -b tsconfig.build.json --watch"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vuepress/cli": "^2.0.0-beta.41",
|
"@vuepress/cli": "2.0.0-beta.41",
|
||||||
"@vuepress/client": "^2.0.0-beta.41",
|
"@vuepress/client": "2.0.0-beta.41",
|
||||||
"@vuepress/core": "^2.0.0-beta.41",
|
"@vuepress/core": "2.0.0-beta.41",
|
||||||
"@vuepress/utils": "^2.0.0-beta.41",
|
"@vuepress/utils": "2.0.0-beta.41",
|
||||||
"markdown-it-container": "^3.0.0"
|
"markdown-it-container": "^3.0.0"
|
||||||
},
|
},
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
|
|||||||
@ -29,21 +29,21 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/lodash.merge": "^4.6.6",
|
"@types/lodash.merge": "^4.6.6",
|
||||||
"@vuepress-plume/vuepress-plugin-caniuse": "1.0.0-beta.8",
|
"@vuepress-plume/vuepress-plugin-caniuse": "1.0.0-beta.8",
|
||||||
"@vuepress/client": "^2.0.0-beta.41",
|
"@vuepress/client": "2.0.0-beta.41",
|
||||||
"@vuepress/core": "^2.0.0-beta.41",
|
"@vuepress/core": "2.0.0-beta.41",
|
||||||
"@vuepress/plugin-active-header-links": "^2.0.0-beta.41",
|
"@vuepress/plugin-active-header-links": "2.0.0-beta.41",
|
||||||
"@vuepress/plugin-container": "^2.0.0-beta.41",
|
"@vuepress/plugin-container": "2.0.0-beta.41",
|
||||||
"@vuepress/plugin-docsearch": "^2.0.0-beta.41",
|
"@vuepress/plugin-docsearch": "2.0.0-beta.41",
|
||||||
"@vuepress/plugin-external-link-icon": "^2.0.0-beta.41",
|
"@vuepress/plugin-external-link-icon": "2.0.0-beta.41",
|
||||||
"@vuepress/plugin-medium-zoom": "^2.0.0-beta.41",
|
"@vuepress/plugin-medium-zoom": "2.0.0-beta.41",
|
||||||
"@vuepress/plugin-nprogress": "^2.0.0-beta.41",
|
"@vuepress/plugin-nprogress": "2.0.0-beta.41",
|
||||||
"@vuepress/plugin-palette": "^2.0.0-beta.41",
|
"@vuepress/plugin-palette": "2.0.0-beta.41",
|
||||||
"@vuepress/plugin-prismjs": "^2.0.0-beta.41",
|
"@vuepress/plugin-prismjs": "2.0.0-beta.41",
|
||||||
"@vuepress/plugin-search": "^2.0.0-beta.41",
|
"@vuepress/plugin-search": "2.0.0-beta.41",
|
||||||
"@vuepress/plugin-theme-data": "^2.0.0-beta.41",
|
"@vuepress/plugin-theme-data": "2.0.0-beta.41",
|
||||||
"@vuepress/plugin-toc": "^2.0.0-beta.41",
|
"@vuepress/plugin-toc": "2.0.0-beta.41",
|
||||||
"@vuepress/shared": "^2.0.0-beta.41",
|
"@vuepress/shared": "2.0.0-beta.41",
|
||||||
"@vuepress/utils": "^2.0.0-beta.41",
|
"@vuepress/utils": "2.0.0-beta.41",
|
||||||
"@vueuse/core": "^8.2.3",
|
"@vueuse/core": "^8.2.3",
|
||||||
"chokidar": "^3.5.3",
|
"chokidar": "^3.5.3",
|
||||||
"date-fns": "^2.28.0",
|
"date-fns": "^2.28.0",
|
||||||
@ -55,12 +55,12 @@
|
|||||||
"sass-loader": "^12.6.0",
|
"sass-loader": "^12.6.0",
|
||||||
"vue": "^3.2.33",
|
"vue": "^3.2.33",
|
||||||
"vue-router": "^4.0.14",
|
"vue-router": "^4.0.14",
|
||||||
"vuepress-plugin-comment2": "^2.0.0-beta.47",
|
"vuepress-plugin-comment2": "2.0.0-beta.47",
|
||||||
"vuepress-plugin-copy-code2": "^2.0.0-beta.47",
|
"vuepress-plugin-copy-code2": "2.0.0-beta.47",
|
||||||
"vuepress-plugin-md-enhance": "^2.0.0-beta.47",
|
"vuepress-plugin-md-enhance": "2.0.0-beta.47",
|
||||||
"vuepress-plugin-reading-time2": "^2.0.0-beta.47",
|
"vuepress-plugin-reading-time2": "2.0.0-beta.47",
|
||||||
"vuepress-plugin-seo2": "^2.0.0-beta.47",
|
"vuepress-plugin-seo2": "2.0.0-beta.47",
|
||||||
"vuepress-plugin-sitemap2": "^2.0.0-beta.47"
|
"vuepress-plugin-sitemap2": "2.0.0-beta.47"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"sass-loader": "^12.6.0"
|
"sass-loader": "^12.6.0"
|
||||||
|
|||||||
60
pnpm-lock.yaml
generated
60
pnpm-lock.yaml
generated
@ -59,11 +59,11 @@ importers:
|
|||||||
docs:
|
docs:
|
||||||
specifiers:
|
specifiers:
|
||||||
'@vuepress-plume/vuepress-theme-plume': workspace:*
|
'@vuepress-plume/vuepress-theme-plume': workspace:*
|
||||||
'@vuepress/bundler-vite': ^2.0.0-beta.41
|
'@vuepress/bundler-vite': 2.0.0-beta.41
|
||||||
'@vuepress/bundler-webpack': ^2.0.0-beta.41
|
'@vuepress/bundler-webpack': 2.0.0-beta.41
|
||||||
'@vuepress/cli': ^2.0.0-beta.41
|
'@vuepress/cli': 2.0.0-beta.41
|
||||||
'@vuepress/client': ^2.0.0-beta.41
|
'@vuepress/client': 2.0.0-beta.41
|
||||||
'@vuepress/utils': ^2.0.0-beta.41
|
'@vuepress/utils': 2.0.0-beta.41
|
||||||
anywhere: ^1.5.0
|
anywhere: ^1.5.0
|
||||||
sass-loader: ^12.6.0
|
sass-loader: ^12.6.0
|
||||||
vue: ^3.2.33
|
vue: ^3.2.33
|
||||||
@ -80,10 +80,10 @@ importers:
|
|||||||
|
|
||||||
packages/plugin-caniuse:
|
packages/plugin-caniuse:
|
||||||
specifiers:
|
specifiers:
|
||||||
'@vuepress/cli': ^2.0.0-beta.41
|
'@vuepress/cli': 2.0.0-beta.41
|
||||||
'@vuepress/client': ^2.0.0-beta.41
|
'@vuepress/client': 2.0.0-beta.41
|
||||||
'@vuepress/core': ^2.0.0-beta.41
|
'@vuepress/core': 2.0.0-beta.41
|
||||||
'@vuepress/utils': ^2.0.0-beta.41
|
'@vuepress/utils': 2.0.0-beta.41
|
||||||
markdown-it-container: ^3.0.0
|
markdown-it-container: ^3.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vuepress/cli': 2.0.0-beta.41
|
'@vuepress/cli': 2.0.0-beta.41
|
||||||
@ -96,21 +96,21 @@ importers:
|
|||||||
specifiers:
|
specifiers:
|
||||||
'@types/lodash.merge': ^4.6.6
|
'@types/lodash.merge': ^4.6.6
|
||||||
'@vuepress-plume/vuepress-plugin-caniuse': 1.0.0-beta.8
|
'@vuepress-plume/vuepress-plugin-caniuse': 1.0.0-beta.8
|
||||||
'@vuepress/client': ^2.0.0-beta.41
|
'@vuepress/client': 2.0.0-beta.41
|
||||||
'@vuepress/core': ^2.0.0-beta.41
|
'@vuepress/core': 2.0.0-beta.41
|
||||||
'@vuepress/plugin-active-header-links': ^2.0.0-beta.41
|
'@vuepress/plugin-active-header-links': 2.0.0-beta.41
|
||||||
'@vuepress/plugin-container': ^2.0.0-beta.41
|
'@vuepress/plugin-container': 2.0.0-beta.41
|
||||||
'@vuepress/plugin-docsearch': ^2.0.0-beta.41
|
'@vuepress/plugin-docsearch': 2.0.0-beta.41
|
||||||
'@vuepress/plugin-external-link-icon': ^2.0.0-beta.41
|
'@vuepress/plugin-external-link-icon': 2.0.0-beta.41
|
||||||
'@vuepress/plugin-medium-zoom': ^2.0.0-beta.41
|
'@vuepress/plugin-medium-zoom': 2.0.0-beta.41
|
||||||
'@vuepress/plugin-nprogress': ^2.0.0-beta.41
|
'@vuepress/plugin-nprogress': 2.0.0-beta.41
|
||||||
'@vuepress/plugin-palette': ^2.0.0-beta.41
|
'@vuepress/plugin-palette': 2.0.0-beta.41
|
||||||
'@vuepress/plugin-prismjs': ^2.0.0-beta.41
|
'@vuepress/plugin-prismjs': 2.0.0-beta.41
|
||||||
'@vuepress/plugin-search': ^2.0.0-beta.41
|
'@vuepress/plugin-search': 2.0.0-beta.41
|
||||||
'@vuepress/plugin-theme-data': ^2.0.0-beta.41
|
'@vuepress/plugin-theme-data': 2.0.0-beta.41
|
||||||
'@vuepress/plugin-toc': ^2.0.0-beta.41
|
'@vuepress/plugin-toc': 2.0.0-beta.41
|
||||||
'@vuepress/shared': ^2.0.0-beta.41
|
'@vuepress/shared': 2.0.0-beta.41
|
||||||
'@vuepress/utils': ^2.0.0-beta.41
|
'@vuepress/utils': 2.0.0-beta.41
|
||||||
'@vueuse/core': ^8.2.3
|
'@vueuse/core': ^8.2.3
|
||||||
chokidar: ^3.5.3
|
chokidar: ^3.5.3
|
||||||
date-fns: ^2.28.0
|
date-fns: ^2.28.0
|
||||||
@ -122,12 +122,12 @@ importers:
|
|||||||
sass-loader: ^12.6.0
|
sass-loader: ^12.6.0
|
||||||
vue: ^3.2.33
|
vue: ^3.2.33
|
||||||
vue-router: ^4.0.14
|
vue-router: ^4.0.14
|
||||||
vuepress-plugin-comment2: ^2.0.0-beta.47
|
vuepress-plugin-comment2: 2.0.0-beta.47
|
||||||
vuepress-plugin-copy-code2: ^2.0.0-beta.47
|
vuepress-plugin-copy-code2: 2.0.0-beta.47
|
||||||
vuepress-plugin-md-enhance: ^2.0.0-beta.47
|
vuepress-plugin-md-enhance: 2.0.0-beta.47
|
||||||
vuepress-plugin-reading-time2: ^2.0.0-beta.47
|
vuepress-plugin-reading-time2: 2.0.0-beta.47
|
||||||
vuepress-plugin-seo2: ^2.0.0-beta.47
|
vuepress-plugin-seo2: 2.0.0-beta.47
|
||||||
vuepress-plugin-sitemap2: ^2.0.0-beta.47
|
vuepress-plugin-sitemap2: 2.0.0-beta.47
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/lodash.merge': 4.6.7
|
'@types/lodash.merge': 4.6.7
|
||||||
'@vuepress-plume/vuepress-plugin-caniuse': link:../plugin-caniuse
|
'@vuepress-plume/vuepress-plugin-caniuse': link:../plugin-caniuse
|
||||||
|
|||||||
@ -1,17 +1,19 @@
|
|||||||
import fs from 'fs'
|
const fs = require('fs')
|
||||||
import path from 'path'
|
const path = require('path')
|
||||||
import { execa } from 'execa'
|
const execa = require('execa')
|
||||||
import ora from 'ora'
|
const ora = require('ora')
|
||||||
import chalk from 'chalk'
|
const chalk = require('chalk')
|
||||||
|
|
||||||
const packages = fs.readdirSync(new URL('../packages', import.meta.url))
|
const packages = [
|
||||||
|
...fs.readdirSync(path.join(__dirname, '../packages')).map(dir => path.join('../packages', dir)),
|
||||||
|
'../docs'
|
||||||
|
]
|
||||||
|
|
||||||
const dependencies = packages.map(dir => {
|
const dependencies = packages.map(dir => {
|
||||||
const dirname = new URL(path.join('../packages', dir), import.meta.url)
|
const pkg = fs.readFileSync(path.join(__dirname, dir, 'package.json'))
|
||||||
const pkg = fs.readFileSync(path.join(dirname.pathname, 'package.json'))
|
|
||||||
const { dependencies, devDependencies } = JSON.parse(pkg)
|
const { dependencies, devDependencies } = JSON.parse(pkg)
|
||||||
return {
|
return {
|
||||||
dirname: dirname.pathname,
|
dirname: path.join(__dirname, dir),
|
||||||
dependencies: filterVuePress(Object.keys(dependencies || {})),
|
dependencies: filterVuePress(Object.keys(dependencies || {})),
|
||||||
devDependencies: filterVuePress(Object.keys(devDependencies || {}))
|
devDependencies: filterVuePress(Object.keys(devDependencies || {}))
|
||||||
}
|
}
|
||||||
@ -31,28 +33,29 @@ function filterVuePress(dependencies) {
|
|||||||
const options = []
|
const options = []
|
||||||
dependencies.forEach(({ dirname, dependencies, devDependencies }) => {
|
dependencies.forEach(({ dirname, dependencies, devDependencies }) => {
|
||||||
if (dependencies.length) {
|
if (dependencies.length) {
|
||||||
options.push(['yarn', ['add', ...dependencies], { cwd: dirname }])
|
options.push(['pnpm', ['add', ...dependencies], { cwd: dirname }])
|
||||||
}
|
}
|
||||||
if (devDependencies.length) {
|
if (devDependencies.length) {
|
||||||
options.push(['yarn', ['add', '-D', ...devDependencies], { cwd: dirname }])
|
options.push(['pnpm', ['add', '-D', ...devDependencies], { cwd: dirname }])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
async function install(index = 0) {
|
async function install(index = 0) {
|
||||||
if (index >= options.length) return
|
if (index >= options.length) return
|
||||||
|
const spinner = ora()
|
||||||
const opt = options[index]
|
const opt = options[index]
|
||||||
console.log(chalk.cyan(opt[2].cwd.split('/').slice(-2).join('/')));
|
const dir = opt[2].cwd.split('/').slice(-2).join('/')
|
||||||
|
console.log('Installing ', chalk.cyan(dir));
|
||||||
console.log(chalk.gray(opt[0], opt[1].join(' ')));
|
console.log(chalk.gray(opt[0], opt[1].join(' ')));
|
||||||
console.log('\n');
|
console.log('\n');
|
||||||
const spinner = ora('installing').start()
|
|
||||||
const current = execa(opt[0], opt[1], opt[2])
|
const current = execa(opt[0], opt[1], opt[2])
|
||||||
current.stdout.pipe(process.stdout)
|
current.stdout.pipe(process.stdout)
|
||||||
try {
|
try {
|
||||||
await current;
|
await current;
|
||||||
spinner.succeed()
|
spinner.succeed('Installed.')
|
||||||
await install(index + 1)
|
await install(index + 1)
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
spinner.fail()
|
spinner.fail('Install Fail.')
|
||||||
console.log(e)
|
console.log(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user