refactor: 调整 monorepo 目录结构, 对 package 重命名

This commit is contained in:
pengzhanbo 2023-12-23 04:20:22 +08:00
parent c9c7bb441c
commit 14e37ed52f
281 changed files with 272 additions and 649 deletions

View File

@ -1,12 +1,12 @@
const fs = require('fs')
const path = require('path')
const packages = fs.readdirSync(path.resolve(__dirname, 'packages'))
const packages = fs.readdirSync(path.resolve(__dirname, 'plugins'))
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'scope-enum': [2, 'always', ['docs', ...packages]],
'scope-enum': [2, 'always', ['docs', 'theme', ...packages]],
'footer-max-line-length': [0],
},
}

View File

@ -1,5 +1,6 @@
node_modules/
.temp/
.cache/
lib/
dist/
!.vuepress/

View File

@ -48,7 +48,7 @@ module.exports = {
},
},
{
files: ['docs/**'],
files: ['docs/**/*.ts'],
rules: {
'import/no-extraneous-dependencies': 'off',
},

3
.gitignore vendored
View File

@ -3,7 +3,6 @@
docs/.vuepress/.cache
docs/.vuepress/.temp
docs/.vuepress/dist
packages/theme-back
lib/
dist/
@ -13,5 +12,3 @@ dist/
*.log
*.tsbuildinfo
.mind
packages/theme-back

View File

@ -2,7 +2,7 @@ import * as path from 'path'
import { viteBundler } from '@vuepress/bundler-vite'
import { webpackBundler } from '@vuepress/bundler-webpack'
import { defineUserConfig } from '@vuepress/cli'
import themePlume from '@vuepress-plume/vuepress-theme-plume'
import themePlume from 'vuepress-theme-plume'
import { enNotes, zhNotes } from './notes.js'
export default defineUserConfig({

View File

@ -1,4 +1,4 @@
import { definePlumeNotesConfig } from '@vuepress-plume/vuepress-theme-plume'
import { definePlumeNotesConfig } from 'vuepress-theme-plume'
export const zhNotes = definePlumeNotesConfig({
dir: 'notes',

View File

@ -9,7 +9,6 @@
"docs:serve": "anywhere -s -h localhost -d .vuepress/dist"
},
"dependencies": {
"@vuepress-plume/vuepress-theme-plume": "workspace:*",
"@vuepress/bundler-vite": "2.0.0-rc.0",
"@vuepress/bundler-webpack": "2.0.0-rc.0",
"@vuepress/cli": "2.0.0-rc.0",
@ -19,6 +18,7 @@
"leancloud-storage": "^4.15.2",
"sass": "^1.69.5",
"sass-loader": "^13.3.2",
"vue": "^3.3.13"
"vue": "^3.3.13",
"vuepress-theme-plume": "workspace:*"
}
}

View File

@ -1,5 +1,5 @@
{
"name": "vuepress-theme-plume",
"name": "vuepress-theme-plume-monorepo",
"version": "1.0.0-beta.89",
"private": true,
"keywords": [
@ -7,8 +7,6 @@
"vuepress-next",
"Theme",
"vuepress theme",
"vuepress-theme",
"theme-plume",
"vuepress-theme-plume"
],
"license": "MIT",
@ -17,11 +15,11 @@
"scripts": {
"autoUpdate": "node scripts/autoInstall.js",
"build": "pnpm run build:package",
"build:package": "pnpm --filter=!vuepress-theme-plume run -r --stream build",
"build:package": "pnpm --filter=!vuepress-theme-plume-monorepo --filter=!docs run -r --stream build",
"commit": "cz",
"dev": "concurrently \"pnpm run dev:package\" \"pnpm run docs\"",
"dev:package": "pnpm --filter=!vuepress-theme-plume --parallel dev",
"dev:theme": "concurrently \"pnpm --filter=@vuepress-plume/vuepress-theme-plume dev\" \"pnpm run docs\"",
"dev:package": "pnpm --filter=!vuepress-theme-plume-monorepo --filter=!docs --parallel dev",
"dev:theme": "concurrently \"pnpm --filter=vuepress-theme-plume dev\" \"pnpm run docs\"",
"docs": "pnpm --filter=docs docs:dev",
"docs:build": "pnpm --filter=docs docs:build",
"docs:clean": "pnpm --filter=docs docs:clean",
@ -76,7 +74,6 @@
"rimraf": "^5.0.5",
"sort-package-json": "^2.6.0",
"taze": "^0.13.0",
"ts-node": "^10.9.2",
"tsconfig-vuepress": "^4.5.0",
"typescript": "^5.3.3",
"vite": "^5.0.10"

View File

@ -1,18 +0,0 @@
# `@vuepress-plume/vuepress-plugin-copy-code`
## Install
```
yarn add @vuepress-plume/vuepress-plugin-copy-code
```
## Usage
``` js
// .vuepress/config.js
const { copyCodePlugin } = require('@vuepress-plume/vuepress-plugin-copy-code')
module.exports = {
//...
plugins: [
copyCodePlugin()
]
// ...
}
```

View File

@ -1,19 +0,0 @@
{
"extends": "../tsconfig.build.json",
"compilerOptions": {
"rootDir": "./src",
"outDir": "./lib",
"baseUrl": ".",
"paths": {
"@theme-plume/*": ["./src/client/components/*"]
},
"types": ["@vuepress/client/types", "vite/client"]
},
"include": ["./src"],
"references": [
{ "path": "../plugin-caniuse/tsconfig.build.json" },
{ "path": "../plugin-copy-code/tsconfig.build.json" },
{ "path": "../plugin-baidu-tongji/tsconfig.build.json" }
],
"files": []
}

View File

@ -1,15 +1,15 @@
# `@vuepress-plume/vuepress-plugin-auto-frontmatter`
# `@vuepress-plume/plugin-auto-frontmatter`
自动生成 `*.md` 文件的 `frontmatter` 配置。
## Install
```
yarn add @vuepress-plume/vuepress-plugin-auto-frontmatter
yarn add @vuepress-plume/plugin-auto-frontmatter
```
## Usage
``` js
// .vuepress/config.js
import { autoFrontmatterPlugin } from '@vuepress-plume/vuepress-plugin-auto-frontmatter'
import { autoFrontmatterPlugin } from '@vuepress-plume/plugin-auto-frontmatter'
export default {
//...
plugins: [

View File

@ -1,5 +1,5 @@
{
"name": "@vuepress-plume/vuepress-plugin-auto-frontmatter",
"name": "@vuepress-plume/plugin-auto-frontmatter",
"version": "1.0.0-beta.89",
"description": "The Plugin for VuePres 2",
"homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme",

View File

@ -68,7 +68,7 @@ export const autoFrontmatterPlugin = ({
}
return {
name: '@vuepress-plume/vuepress-plugin-auto-frontmatter',
name: '@vuepress-plume/plugin-auto-frontmatter',
onInitialized: async (app) => {
const markdownList = await readMarkdownList(app.dir.source(), globFilter)
for (const file of markdownList) {

View File

@ -1,15 +1,15 @@
# `@vuepress-plume/vuepress-plugin-baidu-tongji`
# `@vuepress-plume/plugin-baidu-tongji`
在vuepress中接入百度统计
## Install
```
yarn add @vuepress-plume/vuepress-plugin-baidu-tongji
yarn add @vuepress-plume/plugin-baidu-tongji
```
## Usage
``` js
// .vuepress/config.js
const { baiduTongjiPlugin } = require('@vuepress-plume/vuepress-plugin-baidu-tongji')
const { baiduTongjiPlugin } = require('@vuepress-plume/plugin-baidu-tongji')
module.exports = {
//...
plugins: [

View File

@ -1,5 +1,5 @@
{
"name": "@vuepress-plume/vuepress-plugin-baidu-tongji",
"name": "@vuepress-plume/plugin-baidu-tongji",
"version": "1.0.0-beta.89",
"description": "The Plugin for VuePres 2",
"homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme",

View File

@ -6,7 +6,7 @@ export interface BaiduTongjiOptions {
export const baiduTongjiPlugin = ({ key = '' }: BaiduTongjiOptions): Plugin => {
return {
name: '@vuepress-plume/vuepress-plugin-baidu-tongji',
name: '@vuepress-plume/plugin-baidu-tongji',
extendsPage: (page) => {
page.frontmatter.head = page.frontmatter.head || [];
page.frontmatter.head?.push([

View File

@ -1,13 +1,13 @@
# `@vuepress-plume/vuepress-plugin-blog-data`
# `@vuepress-plume/plugin-blog-data`
## Install
```
yarn add @vuepress-plume/vuepress-plugin-blog-data
yarn add @vuepress-plume/plugin-blog-data
```
## Usage
``` js
// .vuepress/config.js
const { blogDataPlugin } = require('@vuepress-plume/vuepress-plugin-blog-data')
const { blogDataPlugin } = require('@vuepress-plume/plugin-blog-data')
module.exports = {
//...
plugins: [

View File

@ -1,5 +1,5 @@
{
"name": "@vuepress-plume/vuepress-plugin-blog-data",
"name": "@vuepress-plume/plugin-blog-data",
"version": "1.0.0-beta.89",
"description": "The Plugin for VuePres 2",
"homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme",

View File

@ -19,7 +19,7 @@ export const blogDataPlugin = ({
})
return {
name: '@vuepress-plume/vuepress-plugin-blog-data',
name: '@vuepress-plume/plugin-blog-data',
clientConfigFile: path.resolve(__dirname, '../client/config.js'),
extendsPage(page) {
if (page.filePathRelative && pageFilter(page.filePathRelative)) {

View File

@ -1,14 +1,14 @@
# `@vuepress-plume/vuepress-plugin-caniuse`
# `@vuepress-plume/plugin-caniuse`
为 markdown 添加 can-i-use 容器支持
## Install
```
yarn add @vuepress-plume/vuepress-plugin-caniuse
yarn add @vuepress-plume/plugin-caniuse
```
## Usage
``` js
// .vuepress/config.js
const { caniusePlugin } = require('@vuepress-plume/vuepress-plugin-caniuse')
const { caniusePlugin } = require('@vuepress-plume/plugin-caniuse')
module.exports = {
//...
plugins: [

View File

@ -1,5 +1,5 @@
{
"name": "@vuepress-plume/vuepress-plugin-caniuse",
"name": "@vuepress-plume/plugin-caniuse",
"version": "1.0.0-beta.89",
"description": "The Plugin for VuePres 2, Support Can-I-Use feature",
"keywords": [

View File

@ -8,7 +8,7 @@ VuePress 2 插件
## Install
``` sh
yarn add @vuepress-plume/vuepress-plugin-caniuse
yarn add @vuepress-plume/plugin-caniuse
```
## Usage
@ -19,7 +19,7 @@ yarn add @vuepress-plume/vuepress-plugin-caniuse
export default {
// ...
plugins: [
['@vuepress-plume/vuepress-plugin-caniuse', { mode: 'image' }]
['@vuepress-plume/plugin-caniuse', { mode: 'image' }]
]
// ...
}

View File

@ -16,7 +16,7 @@ export const caniusePlugin = ({
const type = 'caniuse'
const validateReg = new RegExp(`^${type}\\s+(.*)$`)
const pluginObj: PluginObject = {
name: '@vuepress-plume/vuepress-plugin-caniuse',
name: '@vuepress-plume/plugin-caniuse',
clientConfigFile: path.resolve(__dirname, '../client/clientConfig.js'),
define: {
__CAN_I_USE_INJECT_MODE__: mode,

View File

@ -0,0 +1,18 @@
# `@vuepress-plume/plugin-copy-code`
## Install
```
yarn add @vuepress-plume/plugin-copy-code
```
## Usage
``` js
// .vuepress/config.js
const { copyCodePlugin } = require('@vuepress-plume/plugin-copy-code')
module.exports = {
//...
plugins: [
copyCodePlugin()
]
// ...
}
```

View File

@ -1,5 +1,5 @@
{
"name": "@vuepress-plume/vuepress-plugin-copy-code",
"name": "@vuepress-plume/plugin-copy-code",
"version": "1.0.0-beta.89",
"description": "The Plugin for VuePres 2",
"homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme",

View File

@ -30,7 +30,7 @@ export const copyCodePlugin = (options: CopyCodeOptions): Plugin => {
const localesOption = Object.assign({}, defaultLocalesOption, locales)
return {
name: '@vuepress-plume/vuepress-plugin-copy-code',
name: '@vuepress-plume/plugin-copy-code',
define: (): Record<string, unknown> => ({
__COPY_CODE_OPTIONS__: options,

View File

@ -1,15 +1,15 @@
# `@vuepress-plume/vuepress-plugin-iconify`
# `@vuepress-plume/plugin-iconify`
添加 `iconify` 图标库支持。并注入全局组件 `<Iconify>`
## Install
```
yarn add @vuepress-plume/vuepress-plugin-iconify
yarn add @vuepress-plume/plugin-iconify
```
## Usage
``` js
// .vuepress/config.js
const iconifyPlugin = require('@vuepress-plume/vuepress-plugin-iconify')
const iconifyPlugin = require('@vuepress-plume/plugin-iconify')
module.exports = {
//...
plugins: [

View File

@ -1,5 +1,5 @@
{
"name": "@vuepress-plume/vuepress-plugin-iconify",
"name": "@vuepress-plume/plugin-iconify",
"version": "1.0.0-beta.89",
"description": "The Plugin for VuePres 2",
"homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme",

View File

@ -9,7 +9,7 @@ export const iconifyPlugin = ({
}: IconifyOptions = {}): Plugin => {
return (app: App) => {
return {
name: '@vuepress-plume/vuepress-plugin-iconify',
name: '@vuepress-plume/plugin-iconify',
define: {
__VUEPRESS_PLUGIN_ICONIFY_COMPONENT_NAME__: componentName,
__VUEPRESS_PLUGIN_ICONIFY_DEFAULT_SIZE__: size,

View File

@ -1,4 +1,4 @@
# `@vuepress-plume/vuepress-plugin-netlify-functions`
# `@vuepress-plume/plugin-netlify-functions`
If your vuepress site is deployed on `netlify` and you want to be able to use `netlify functions` for ` serverless`.
@ -24,7 +24,7 @@ You may need this plugin to provide support.
## Install
```
yarn add @vuepress-plume/vuepress-plugin-netlify-functions
yarn add @vuepress-plume/plugin-netlify-functions
```
## Usage
@ -33,7 +33,7 @@ yarn add @vuepress-plume/vuepress-plugin-netlify-functions
在 vuepress 项目中,或者在一个 vuepress 主题中
``` js
// .vuepress/config.js
import { netlifyFunctionsPlugin } from '@vuepress-plume/vuepress-plugin-netlify-functions'
import { netlifyFunctionsPlugin } from '@vuepress-plume/plugin-netlify-functions'
module.exports = {
//...
plugins: [
@ -47,7 +47,7 @@ yarn add @vuepress-plume/vuepress-plugin-netlify-functions
在 vuepress plugin 中:
``` js
import { useNetlifyFunctionsPlugin } from '@vuepress-plume/vuepress-plugin-netlify-functions'
import { useNetlifyFunctionsPlugin } from '@vuepress-plume/plugin-netlify-functions'
const myPlugin = (): Plugin => {
return (app: App) => {

View File

@ -1,5 +1,5 @@
{
"name": "@vuepress-plume/vuepress-plugin-netlify-functions",
"name": "@vuepress-plume/plugin-netlify-functions",
"version": "1.0.0-beta.89",
"description": "The Plugin for VuePres 2, Support Netlify Functions",
"keywords": [

View File

@ -78,7 +78,7 @@ export const netlifyFunctionsPlugin = (
let server: NetlifyServe
cache.options = opts
return {
name: '@vuepress-plume/vuepress-plugin-netlify-functions',
name: '@vuepress-plume/plugin-netlify-functions',
onInitialized: async (app) => {
// 启动netlify functions server

View File

@ -35,7 +35,7 @@ export const useNetlifyFunctionsPlugin = (
if (
!plugins.some(
(plugin: PluginObject) =>
plugin.name === '@vuepress-plume/vuepress-plugin-netlify-functions'
plugin.name === '@vuepress-plume/plugin-netlify-functions'
)
) {
app.use(netlifyFunctionsPlugin())

View File

@ -1,13 +1,13 @@
# `@vuepress-plume/vuepress-plugin-notes-data`
# `@vuepress-plume/plugin-notes-data`
## Install
```
yarn add @vuepress-plume/vuepress-plugin-notes-data
yarn add @vuepress-plume/plugin-notes-data
```
## Usage
``` js
// .vuepress/config.js
const notesDataPlugin = require('@vuepress-plume/vuepress-plugin-notes-data')
const notesDataPlugin = require('@vuepress-plume/plugin-notes-data')
module.exports = {
//...
plugins: [

View File

@ -1,5 +1,5 @@
{
"name": "@vuepress-plume/vuepress-plugin-notes-data",
"name": "@vuepress-plume/plugin-notes-data",
"version": "1.0.0-beta.89",
"description": "The Plugin for VuePres 2",
"homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme",

Some files were not shown because too many files have changed in this diff Show More