第一步,我们先来了解一下npm的一些常用指令,和npm的version以及tag
nrm use npm
nrm add [私有源的名称] [源地址]
nrm del [私有源的名称]
npm adduser
npm login
npm whoami
npm publish
npm unpublish [包名称] --force
npm unpublish [包名称]@版本号 --force
npm dist-tag ls
会得到类似这样的数据
latest: 1.0.0
next: 1.0.0-alpha.0
npm view [包名称] versions
npm dist-tag add [包名称]@[版本号] [tag]
比如设置 axios 的 1.0.0-alpha.5 版本为 next版本(即测试版):
npm dist-tag add axios@1.0.0-alpha.5 next
比如设置 axios 的 1.0.0-beta.5 版本为 latest版本(即正式版):
npm dist-tag add axios@1.0.0-beta.5 latest
现在我们就开始愉快地造轮子,先从vue3的开始吧
我们用vue-cli搭建的vue3项目
- src目录下新建文件,就是我们的组件库的源码文件
- index.ts里提供一个install的方法,目的是为了在vue项目的main.ts里使用app.use()
- 构建我们的打包命令,在项目的package.json里的scripts添加打包指令
"build-ui-package": "vue-cli-service build --target lib ./src/yang-ui-vant/index.ts --dest yang-ui-dist --name yangui"
其中 --target lib 是构建库模式 ./src/yang-ui-vant/index.ts是源码地址 --dest yang-ui-dist是打包后的文件夹 --name是文件夹里文件的名称 运行指令,根目录下就会创建一个yang-ui-dist的文件夹,里面就是我们的组件构建好的源码 4. 然后我们复制出yangui.css,yangui.umd.js到一个文件夹,然后再文件夹新建package.json,进入这个文件夹,打开终端就可以用npm发包了 5. 发包成功后再新的vue3项目中,下载组件,然后再main.ts中导入组件 这个时候你就可以再你的.vue文件里使用自己开发的组件啦 因为组件已经将YangButton个YangSwitch已经全局注册,就可以再.vue文件里使用,当然也可以局部使用,这个要看你的需求和你组件的设计方案了
接下来就是react,基于阿里umi3创建组件了
- 我们下载必要的环境依赖,因为会修改webpack的配置
yarn add cross-env
- 在umi的项目将脚手架创建的项目里的,umirc.ts迁移到根目录下的config/config.ts下,新建config/config.package.ts,我们就在这个文件去配置打包自定义组件的配置项
- 开始编写配置项目,这里用到了webpack-chain的方法,可以参考文档webpack-chain
import { defineConfig } from 'umi'
const path = require('path')
export default defineConfig({
outputPath: 'yang-ui',
hash: false,
chainWebpack: (config) => {
config.entry('umi').clear().end();
config.entry('umi').add(path.resolve(__dirname, '../src/components/index.ts')).end();
config.output.libraryTarget('umd')
}
})
- 项目src/components下开始编写组件的代码
- 项目根目录下的package.json下的scripts新增打包指令
"build:component": "cross-env UMI_ENV=package umi build"
6. 执行指令 yarn build:component 就会在根目录下生成yang-ui文件夹,里面就是构建好的代码,然后再这个文件夹下新建package.json然后就npm发包 7. 在新的项目里下载组件,然后再src/app.ts下引入样式,就可以再.tsx文件里使用组件了
|