lerna创建组件
创建组件
lerna create [componentName]
// 修改组件名,以 @ming-ui/ 开头
ming-ui shuai$ lerna create test
info cli using local version of lerna
lerna notice cli v4.0.0
package name: (test) @ming-ui/test
version: (0.0.0)
description:
keywords:
homepage:
license: (ISC)
entry point: (lib/test.js)
git repository: (https://github.com/shenshuai89/ming-ui.git)
About to write to /Users/shuai/Desktop/code/nodeapp/ming-ui/packages/test/package.json:
成功后,会在packages下创建test目录。
- 修改test/lib为,test/src
- 在test下创建index.ts,作为单独组件的入口
import { App } from "vue";
import Test from "./src/test.vue";
Test.install = (app: App):void => {
app.component(Test.name, Test)
};
type IWithInstall<T> = T & { install(app: App): void };
const _Test: IWithInstall<typeof Test> = Test;
export default _Test;
- 在test/src下创建test.vue文件,作为组件使用。一定要设置好组件name
<template>
<div>test component</div>
</template>
<script lang="ts">
import { defineComponent } from "vue";
export default defineComponent({
name: "MTest",
});
</script>
- 将test组件路径添加的ming-ui/index.ts中,全量使用组件的入口
// ...
import MTest from "@ming-ui/test";
const components = [
//...
MTest,
]
const install = (app: App): void => {
components.forEach((component) => {
app.component(component.name, component);
});
};
export default { install };
设置样式
- 在theme-chalk/src目录下,创建test.scss
- 在theme-chalk/src/index.scss文件中引入test.scss
- 样式编写采用bem规范
Bem 是块(block)、元素(element)、修饰符(modifier)的简写,由 Yandex 团队提出的一种前端 CSS 命名方法论。
- 中划线 :仅作为连字符使用,表示某个块或者某个子元素的多单词之间的连接记号
__ 双下划线:双下划线用来连接块和块的子元素
_ 单下划线:单下划线用来描述一个块或者块的子元素的一种状态
安装使用
安装刚创建的组件
yarn install