记录学习如何发布自己的npm依赖包
开发组件
- 创建项目并在项目根目录下创建要存放组建的文件夹(如:packages)
- 在packages文件夹中新建组件文件夹(如:button文件夹,button文件夹下应该包括
.js
和.vue
文件) - 在packages文件夹中新建
index.js
作为组件入口并全部导出
开发一个button组件
// packages/button/index.vue
<template>
<div :class="tClass">
<button><slot></slot></button>
</div>
</template>
<script setup>
import { computed } from 'vue'
const props = defineProps({
type: {
type: String,
default: 'default'
}
})
const tClass = computed(() => {
return ['s-button', `s-button-${props.type}`]
})
console.log(props.type)
</script>
<script>
export default {
name: 'sButton'
}
</script>
<style lang="scss" scoped>
button {
outline: none;
border: 0;
background: none;
cursor: pointer;
}
.s-button {
button {
padding: 12px 24px;
border-radius: 4px;
border: 1px solid #f60;
&:hover,&:focus {
opacity: 0.8;
}
}
&.s-button-default {
button {
background: #f60;
}
}
&.s-button-success {
button {
background: green;
}
}
&.s-button-warning {
button {
background: orange;
}
}
}
</style>
// packages/button/index.js
import sButton from './index.vue'
sButton.install = app => {
app.component(sButton.name, sButton)
}
export default sButton
// packages/index.js
import sButton from "./button/index"
const install = app => {
app.use(sButton)
}
const SUI = {
install
}
export { sButton }
export default SUI
修改配置
// package.json
{
"private": false,
"version": "0.0.1",
"main": "./dist/sxzui.umd.js",
"module": "./dist/sxzui.es.js",
"exports": {
".": {
"import": "./dist/sxzui.es.js",
"require": "./dist/sxzui.umd.js"
}
},
"files": [
"dist/*"
]
}
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
build: {
rollupOptions: {
external: ['vue'],
output: {
globals: {
vue: 'Vue'
}
}
},
lib: {
entry: './packages/index.js',
name: 'sxzui'
}
}
})
npm
发布依赖
npm login
登录- 填写用户名 密码 邮箱
- 登录后
npm publish
即可发布
npmjs
相关
注册登录后 需要开启验证(下图步骤2是验证后的)
正常登录后首页会有提示信息 和操作步骤文档 按照步骤操作即可
需要手机下载 Authenticator app 动态获取6位密码
发布成功后在 Packages 中能看到新发布的项目 或者 npm install 项目名
安装使用下