npm 包开发
此文档以开发一个 vue 组件的 npm 包为例。
新建项目
这里新建一个 vue 项目,这里不再赘述。
组件开发
以开发一个简单的文字链接组件为例。
src
文件夹下新建文件夹hz-link
,名称可随意更改。
hz-link
文件夹下新建 vue 组件文件link.vue
和index.js
文件,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <template> <div class="hz-link" :class="[typeClass]"><slot></slot></div> </template>
<script> export default { name: "HzLink", props: { type: { type: String, default: "default", }, }, computed: { typeClass() { return "hz-type-" + this.type; }, }, }; </script>
<style scoped> .hz-link { color: #333; font-size: 14px; line-height: 32px; } .hz-link.hz-type-primary { color: #409eff; } .hz-link.hz-type-success { color: #67c23a; } .hz-link.hz-type-warning { color: #e6a23c; } .hz-link.hz-type-danger { color: #f56c6c; } </style>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import Link from "./link.vue";
const install = (Vue) => { Vue.component(Link.name, Link); };
if (typeof window !== "undefined" && window.Vue) { window.Vue.use(Link); }
export default { install, };
|
- 配置打包命令,对组件进行打包。
- 在项目根目录
package.json
文件中新增打包命令。
1 2 3 4 5 6 7 8
| { "scripts": { "build-link": "vue-cli-service build --target lib ./src/hz-link/index.js --name hz-link --dest hz-link" } }
|
推送到 npm 仓库
- 进入打包后的文件夹。
- 新建
package.json
文件。
- 修改
package.json
文件。
1 2 3 4 5 6 7 8 9
| { "name": "@haoze/link", "version": "1.0.0", "description": "", "main": "hz-button.common.js", "keywords": ["vue"], "author": "haoze", "license": "ISC" }
|
新建README.md
文件,写入一些说明信息。
更改仓库源
1 2
| npm config set registry https://xxx.xxx.xxx
|
- 添加 npm 用户(如果已有用户,可跳过此步骤)
- 登录
- 发布 npm 包
出现下面的提示,则代表发布成功
安装 npm 包
- 打开 vue 项目根目录
- 安装
- 使用
1 2 3 4 5 6 7 8 9 10 11 12 13
| import Vue from "vue"; import App from "./App.vue";
import HzLink from "@haoze/link"; import "@haoze/link/hz-link.css"; Vue.use(HzLink);
Vue.config.productionTip = false; new Vue({ render: (h) => h(App), }).$mount("#app");
|
1 2 3 4 5 6
| <!-- APP.vue --> <template> <div id="app"> <hz-link type="primary">测试组件</hz-link> </div> </template>
|