Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(cli): improve package.json generate #250

Merged
merged 1 commit into from
Oct 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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