创建项目
使用vue create xxx
命令创建一个default
类型的项目
修改目录
- 把
src
改为examples
- 添加一个新目录
packages
修改配置
- 添加
vue.config.js
并修改为:
开发组件
-
在
packages
下创建progress
目录和index.js
文件,progress
目录下创建index.js
和main.vue
-
main.vue
中编写组件代码,注意:组件的name
一定要写,将来是使用时的标签名(我这里是GradientProgress
) -
progress
中的inde.js
文件内容如下:
import progress from './main.vue'
progress.install = function(Vue){
Vue.component(progress.name,progress)
}
export default progress
packages
中的index.js
文件内容如下:
import progress from './progress/index'
const components = [
progress
]
const install = function(Vue){
if(install.installed) return
install.installed = true
components.map(component =>{
Vue.component(component.name,component)
})
}
export default{
install,
...components
}
到这里开发就完成了,接下来可以先在本地引入测试一下,在本地examples
下的main.js
中:
import GradientProgress from '../packages/index'
Vue.use(GradientProgress)
在App.vue
中
<GradientProgress ...></GradientProgress>
如果可以正常使用那就可以发布啦~~~
发布的准备工作
- 首先先要打包,在
package.json
的scripts
中添加lib
命令:
主要需要四个参数:
* target: 默认为构建应用,改为 lib 即可启用构建库模式
* name: 输出文件名
* dest: 输出目录,默认为 dist,这里我们改为** lib**
* entry: 入口文件路径,默认为 src/App.vue,这里改为 packages/index.js
"lib":"vue-cli-service build --target lib --name gradient-progress --dest lib packages/index.js"
-
执行
npm run lib
命令,编译组件,完成后会多一个lib
文件夹 -
准备发布,在
package.json
中添加一些组件信息:
name: 包名,该名不能和已有的名称冲突;*
version: 版本号,不能和历史版本号相同;*
description: 简介;
main: 入口文件,应指向编译后的包文件;(lib/xxx.umd.min.js
)*
keyword:关键字,以空格分割;
author:作者;
private:是否私有,需要修改为 false 才能发布到 npm;*
license:开源协议。以下是我的配置:
-
添加一个
.npmignore
文件,可以把不需要上传的文件忽略掉,需要上传的只有lib
,package.json
,ReadMe.md
发布到npm
- 首先需要先注册一个
npm
账号,可以直接在npmjs.com
官网注册,也可以使用命令注册; - 第一次发布需要先登录,使用命令
npm login
,输入用户名,密码,邮箱 - 使用
npm publish
发布,注意:更新内容时记得更改package.json
的版本号
使用
npm install xxxx
main.js
中全局引入- 组件中使用
ps:这个流程走下来发现局部使用时有问题,会报错
还请路过的大佬指教一下,不胜感激~~~