Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hunterliu1003/vue-automatic-import-loader
📦Using a match function to automatic import your own Vue project's components
https://github.com/hunterliu1003/vue-automatic-import-loader
vue vue-automatic vue-automatic-import-loader webpack-loader webpack-plugin
Last synced: 26 days ago
JSON representation
📦Using a match function to automatic import your own Vue project's components
- Host: GitHub
- URL: https://github.com/hunterliu1003/vue-automatic-import-loader
- Owner: hunterliu1003
- License: mit
- Created: 2019-09-20T06:07:41.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-12-11T06:31:29.000Z (over 1 year ago)
- Last Synced: 2024-01-02T23:39:18.590Z (5 months ago)
- Topics: vue, vue-automatic, vue-automatic-import-loader, webpack-loader, webpack-plugin
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/vue-automatic-import-loader
- Size: 1.82 MB
- Stars: 24
- Watchers: 2
- Forks: 2
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-vue - vue-automatic-import-loader - webpack loader that auto import your Vue single file components by using a match function. (Components & Libraries / Utilities)
- awesome-vue - vue-automatic-import-loader - webpack loader that auto import your Vue single file components by using a match function. (Components & Libraries / Utilities)
- awesome-vue - vue-automatic-import-loader - webpack loader that auto import your Vue single file components by using a match function. (Components & Libraries / Utilities)
- awesome-vue - vue-automatic-import-loader - webpack loader that auto import your Vue single file components by using a match function. (Components & Libraries / Utilities)
- awesome-vue - vue-automatic-import-loader - webpack loader that auto import your Vue single file components by using a match function. (Components & Libraries / Utilities)
- awesome-vue - vue-automatic-import-loader - webpack loader that auto import your Vue single file components by using a match function. (Components & Libraries / Utilities)
- awesome-vue - vue-automatic-import-loader - webpack loader that auto import your Vue single file components by using a match function. (Components & Libraries / Utilities)
- awesome-vue - vue-automatic-import-loader - webpack loader that auto import your Vue single file components by using a match function. (Components & Libraries / Utilities)
README
# vue-automatic-import-loader
Using a match function to automatic import your own project's components
This repo copy from [vuetify-loader](https://github.com/vuetifyjs/vuetify-loader) and remove the vuetify part.
## Introduction
**vue-automatic-import-loader** is a webpack plugin that automatically import SFC.
Here is the example:
```html
This is a button component
```
will be automatically compiled to:
```html
This is a button component
import BaseButton from '@/components/base/Button.vue'
export default {
components: {
BaseButton
}
}```
## Run example project
```bash
$ git clone https://github.com/hunterliu1003/vue-automatic-import-loader.git
$ cd vue-automatic-import-loader/dev
$ yarn install
$ yarn serve
```
Then you can see demo in http://localhost:8080/## Usage
### Install package
```bash
$ npm install --save vue-automatic-import-loader
# or
$ yarn add vue-automatic-import-loader
```### Vue CLI 3
in vue.config.js:
```js
const VueAutomaticImportPlugin = require('vue-automatic-import-loader/lib/plugin')module.exports = {
configureWebpack: {
plugins: [
new VueAutomaticImportPlugin({
match(originalTag, { kebabTag, camelTag }) {
/**
* This function will be called for every tag used in each vue component
* It should return an array, the first element will be inserted into the
* components array, the second should be a corresponding import
*
* originalTag - the tag as it was originally used in the template
* kebabTag - the tag normalised to kebab-case
* camelTag - the tag normalised to PascalCase
* path - a relative path to the current .vue file
* component - a parsed representation of the current component
*/
if (kebabTag.startsWith('base-')) {
return [
camelTag,
`import ${camelTag} from '@/components/base/${camelTag}.vue'`
]
}
}
})
]
}
}
```### Nuxt.js
in nuxt.config.js:
```js
import VueAutomaticImportPlugin from 'vue-automatic-import-loader/lib/plugin'export default {
build: {
plugins: [
new VueAutomaticImportPlugin({
match(originalTag, { kebabTag, camelTag, path, component }) {
/**
* This function will be called for every tag used in each vue component
* It should return an array, the first element will be inserted into the
* components array, the second should be a corresponding import
*
* originalTag - the tag as it was originally used in the template
* kebabTag - the tag normalised to kebab-case
* camelTag - the tag normalised to PascalCase
* path - a relative path to the current .vue file
* component - a parsed representation of the current component
*/
if (kebabTag.startsWith('base-')) {
return [
camelTag,
`import ${camelTag} from '@/components/base/${camelTag}.vue'`
]
}
}
})
]
}
}
```