Vue多组件仓库开发与发布详解多组件仓库开发与发布详解
在开发组件时,我们可能会期望一类组件放在同一个代码仓库下,就像element那样,我们可以使用element提供的脚手架,
也可以使用vue cli 3创建一个更‘新’的项目。
项目创建项目创建
通过vue cli 3创建项目,创建文件夹packages用于存放组件。
单个组件目录单个组件目录
在packages下就是每一个组件,每个组件和单独项目一样,会有package.json、README.md、src、dist等文件及目录。
如何演示如何演示/调试组件调试组件
在组件开发过称中,我们需要对组件进行展示,所以创建了examples文件夹,用于存放每个组件示例。
通过一个列表展示出所有的组件,点击选择当前开发的组件,进入对应的example。
路由的根就是一个导航列表,然后每个组件对应一个路由,通过一个配置文件的components.js来生成这个路由。
// 路由
import Navigation from "./Navigation";
import components from "./components";
let routes = components.map(component => ({
path: `/${component.name}`,
component: () => import(`../examples/${component.name}`)
}));
routes.unshift({
path: "",
component: Navigation
});
export default routes;
自动化脚本自动化脚本
创建创建/编译编译/发布发布
创建新的组件,需要修改components.js配置文件,在examples和packages下创建对应目录。
编译/发布组件,因为仓库下会有多个组件,如果一次发布多个,就需要进入每个文件夹下执行命令。
上面过程实现自动化,有很多种方式,比如可以通过npm run <script>,可以直接通过node命令等。这里我参考element,采
用了Makefile。
创建script文件夹,其中包括创建脚本new.js和构建脚本build.js。
创建脚本创建脚本
创建脚本主要就是目录的创建与文件的写入,其中可能需要注意的可能就是格式问题。
一种方式是在“之间,按照规范格式去完成写入内容,这样做比较麻烦,而且可能面临格式化要求修改问题。
另一种方式是在脚本中引入eslint,脚本中的eslint.CLIEngine可以根据配置文件(比如.eslintrc.js)格式化文件。需要注意的是需
要比命令行中配置需要多添加fix: true配置, 如下
const CLIEngine = eslint.CLIEngine;
const cli = new CLIEngine({ ...require("../.eslintrc.js"), fix: true });
eslint在脚本中的使用方法,更具体的可以参考eslint文档中Node.js API部分。
// scripts/new.js部分
...
components.push({
label: newName,
name: newName