diff --git a/cli/package.json b/cli/package.json index 637cc604..0889fd78 100644 --- a/cli/package.json +++ b/cli/package.json @@ -37,7 +37,10 @@ "handlebars": "^4.7.8", "picocolors": "^1.1.0" }, - "theme-plume": { - "vuepress": "2.0.0-rc.15" + "plume-deps": { + "vuepress": "2.0.0-rc.17", + "vue": "^3.5.10", + "sass-embedded": "^1.79.4", + "sass-loader": "^16.0.2" } } diff --git a/cli/src/packageJson.ts b/cli/src/packageJson.ts index dd8f79bf..3fefbc52 100644 --- a/cli/src/packageJson.ts +++ b/cli/src/packageJson.ts @@ -2,7 +2,7 @@ import type { File, ResolvedData } from './types.js' import { kebabCase } from '@pengzhanbo/utils' import { execaCommand } from 'execa' import { Mode } from './constants.js' -import { getDependenciesVersion, readJsonFile, resolve } from './utils/index.js' +import { readJsonFile, resolve } from './utils/index.js' export async function createPackageJson( mode: Mode, @@ -53,26 +53,28 @@ export async function createPackageJson( pkg.devDependencies ??= {} + const hasDep = (dep: string) => pkg.devDependencies?.[dep] || pkg.dependencies?.[dep] + const context = (await readJsonFile(resolve('package.json')))! - const meta = context['theme-plume'] + const meta = context['plume-deps'] + + pkg.devDependencies[`@vuepress/bundler-${bundler}`] = `${meta.vuepress}` pkg.devDependencies.vuepress = `${meta.vuepress}` pkg.devDependencies['vuepress-theme-plume'] = `${context.version}` - pkg.devDependencies[`@vuepress/bundler-${bundler}`] = `${meta.vuepress}` pkg.devDependencies['http-server'] = '^14.1.1' const deps: string[] = [] - if (!pkg.dependencies?.vue && !pkg.devDependencies.vue) + if (!hasDep('vue')) deps.push('vue') - if (bundler === 'webpack' && !pkg.dependencies?.['sass-loader'] && !pkg.devDependencies['sass-loader']) + + if (bundler === 'webpack' && !hasDep('sass-loader')) deps.push('sass-loader') - if (!pkg.dependencies?.['sass-embedded'] && !pkg.devDependencies['sass-embedded']) + if (!hasDep('sass-embedded')) deps.push('sass-embedded') - const dv = await getDependenciesVersion(deps) - - for (const [d, v] of Object.entries(dv)) - pkg.devDependencies[d] = `^${v}` + for (const dep of deps) + pkg.devDependencies[dep] = meta[dep] return { filepath: 'package.json', diff --git a/cli/src/utils/depsVersion.ts b/cli/src/utils/depsVersion.ts deleted file mode 100644 index 69948c6f..00000000 --- a/cli/src/utils/depsVersion.ts +++ /dev/null @@ -1,16 +0,0 @@ -export type DependencyVersion = 'latest' | 'next' | 'pre' | string - -const api = 'https://api.pengzhanbo.cn/npm/dependencies/version' - -export async function getDependenciesVersion( - dependencies: string[], - version: DependencyVersion = 'latest', -): Promise> { - const result = await fetch(api, { - method: 'POST', - headers: { 'content-type': 'application/json' }, - body: JSON.stringify({ dependencies, version }), - }).then(res => res.json()) - - return result -} diff --git a/cli/src/utils/index.ts b/cli/src/utils/index.ts index 5d48509b..badbda4a 100644 --- a/cli/src/utils/index.ts +++ b/cli/src/utils/index.ts @@ -7,6 +7,5 @@ export const resolve = (...args: string[]) => path.resolve(__dirname, '../', ... export const getTemplate = (dir: string) => resolve('templates', dir) -export * from './depsVersion.js' export * from './fs.js' export * from './getPackageManager.js' diff --git a/cli/templates/.vuepress/config.ts.handlebars b/cli/templates/.vuepress/config.ts.handlebars index f7346246..24cb3943 100644 --- a/cli/templates/.vuepress/config.ts.handlebars +++ b/cli/templates/.vuepress/config.ts.handlebars @@ -1,5 +1,5 @@ -import { defineUserConfig } from 'vuepress' import { {{ bundler }}Bundler } from '@vuepress/bundler-{{ bundler }}' +import { defineUserConfig } from 'vuepress' import { plumeTheme } from 'vuepress-theme-plume' export default defineUserConfig({ @@ -32,7 +32,7 @@ export default defineUserConfig({ * @see https://theme-plume.vuejs.press/config/plugins/code-highlight/ */ // shiki: { - // // 强烈建议预设代码块高亮语言,插件默认加载所有语言会产生不必要的时间开销 + // 强烈建议预设代码块高亮语言,插件默认加载所有语言会产生不必要的时间开销 // languages: ['shell', 'bash', 'typescript', 'javascript'], // }, diff --git a/cli/templates/common/README.md.handlebars b/cli/templates/common/README.md.handlebars index a598ec22..dccd55b9 100644 --- a/cli/templates/common/README.md.handlebars +++ b/cli/templates/common/README.md.handlebars @@ -50,8 +50,8 @@ npm run docs:preview npm run vp-update ``` {{/if}} -{{#if (equal deploy "github")}} +{{#if (equal deploy "github")}} ## Deploy to GitHub Pages The plume theme has been created with GitHub Actions: `.github/workflows/docs-deploy.yml`. You also need to make the following settings in the GitHub repository: diff --git a/cli/templates/common/README.zh-CN.md.handlebars b/cli/templates/common/README.zh-CN.md.handlebars index d8fbc7d3..a5db10df 100644 --- a/cli/templates/common/README.zh-CN.md.handlebars +++ b/cli/templates/common/README.zh-CN.md.handlebars @@ -50,8 +50,8 @@ npm run docs:preview npm run vp-update ``` {{/if}} -{{#if (equal deploy "github")}} +{{#if (equal deploy "github")}} ## 部署到 GitHub Pages 主题已创建 github actions: `.github/workflows/docs-deploy.yml`,你还需要在 github 仓库中进行以下设置: