Skip to content

Commit

Permalink
refactor(cli): improve package.json generate (#250)
Browse files Browse the repository at this point in the history
  • Loading branch information
pengzhanbo authored Oct 3, 2024
1 parent 45b2a36 commit f0ea849
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 33 deletions.
7 changes: 5 additions & 2 deletions cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
22 changes: 12 additions & 10 deletions cli/src/packageJson.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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',
Expand Down
16 changes: 0 additions & 16 deletions cli/src/utils/depsVersion.ts

This file was deleted.

1 change: 0 additions & 1 deletion cli/src/utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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'
4 changes: 2 additions & 2 deletions cli/templates/.vuepress/config.ts.handlebars
Original file line number Diff line number Diff line change
@@ -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({
Expand Down Expand Up @@ -32,7 +32,7 @@ export default defineUserConfig({
* @see https://theme-plume.vuejs.press/config/plugins/code-highlight/
*/
// shiki: {
// // 强烈建议预设代码块高亮语言,插件默认加载所有语言会产生不必要的时间开销
// 强烈建议预设代码块高亮语言,插件默认加载所有语言会产生不必要的时间开销
// languages: ['shell', 'bash', 'typescript', 'javascript'],
// },

Expand Down
2 changes: 1 addition & 1 deletion cli/templates/common/README.md.handlebars
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion cli/templates/common/README.zh-CN.md.handlebars
Original file line number Diff line number Diff line change
Expand Up @@ -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 仓库中进行以下设置:
Expand Down

0 comments on commit f0ea849

Please sign in to comment.