kylin-babel-plugin-decorators-inject

6.22.9 • Public • Published

babel-plugin-decorators-inject

options

  • className
  • propertyName
  • propertyIgnoreName
  • componentsPropertyName
  • enableComponentLazyRequire
  • injectComponentName
  • enableRenderInjectH

针对 标记了className这个装饰器的class内的所有property, 自动注入className.propertyName的装饰器, 除非property的装饰器列表中存在className.propertyNamepropertyIgnoreName

针对 标记了className这个装饰器的class内的非staticclassProperty中,如果名称为componentsPropertyName 那么认为其是vue的options.components,将其标识符的import引入做懒加载处理。该功能默认关闭,通过enableComponentLazyRequire来开启

针对 标记了className这个装饰器的class内的名为render的成员方法,如果在函数作用域没有对h的引用,并且参数列表为空,会改写参数列表为["h"]。 该功能默认关闭,通过enableRenderInjectH来开启

针对 未指定name成员属性,成员方法的,自动注入。该功能默认关闭。

example

组件懒加载

  • input
import { Component, Property }
import B from './b.vue';

@Component
class A {
  components = {
    B
  }
}
  • output
import { Component, Property }

@Component
class A {
  components = {
    B: function lazyRequire(resolve) {
      resolve( require('./b.vue').default || require('./b.vue') )
    }
  }
}

注入property

  • input
import { Component, Property }

@Component
class A {
  data = {a:1}
  
  @Component.Property
  props = 2
  
  @Property
  extends = {}

}
  • output
import { Component, Property }

@Component
class A {
  @Component.Property  // 自动补全 
  data = {a:1}
  
  @Component.Property // 检测到member存在不补全 
  props = 2

  @Property  // 检测到ignore存在不补全 
  extends = {}
}

Readme

Keywords

Package Sidebar

Install

npm i kylin-babel-plugin-decorators-inject

Weekly Downloads

3

Version

6.22.9

License

MIT

Unpacked Size

15.8 kB

Total Files

3

Last publish

Collaborators

  • candy.zheng