Skip to content

Commit

Permalink
feat($plugin-register-components): custom name registration (close: #656
Browse files Browse the repository at this point in the history
) (#1418)
  • Loading branch information
shigma authored and ulivz committed Mar 12, 2019
1 parent 5c0e62f commit 9c6a00b
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 6 deletions.
10 changes: 4 additions & 6 deletions packages/@vuepress/plugin-register-components/index.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
const { fs, path, globby, datatypes: { isString }} = require('@vuepress/shared-utils')

function fileToComponentName (file) {
return file
.replace(/\/|\\/g, '-')
.replace(/\.vue$/, '')
return file.replace(/\/|\\/g, '-')
}

async function resolveComponents (componentDir) {
if (!fs.existsSync(componentDir)) {
return
}
return (await globby(['**/*.vue'], { cwd: componentDir }))
return (await globby(['**/*.vue'], { cwd: componentDir })).map(file => file.slice(0, -4))
}

// Since this plugin can ben used by multiple times, we need to
Expand All @@ -22,15 +20,15 @@ module.exports = (options, context) => ({
multiple: true,

async enhanceAppFiles () {
const { componentsDir = [], components = [] } = options
const { componentsDir = [], components = [], getComponentName = fileToComponentName } = options
const baseDirs = Array.isArray(componentsDir) ? componentsDir : [componentsDir]

function importCode (name, absolutePath) {
return `Vue.component(${JSON.stringify(name)}, () => import(${JSON.stringify(absolutePath)}))`
}

function genImport (baseDir, file) {
const name = fileToComponentName(file)
const name = getComponentName(file)
const absolutePath = path.resolve(baseDir, file)
const code = importCode(name, absolutePath)
return code
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,10 @@ module.exports = {
]
}
```

### getComponentName

- Type: `(file: string) => string`
- Default: `file => file.replace(/\/|\\/g, '-')`

Customize component names for files under `componentsDir`.
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,10 @@ module.exports = {
]
}
```

### getComponentName

- 类型: `(file: string) => string`
- 默认值: `file => file.replace(/\/|\\/g, '-')`

自定义 `componentsDir` 中注册的组件的名称。

0 comments on commit 9c6a00b

Please sign in to comment.