参考以下两个博客。
1.创建项目
我们只需要一个简单的vue组件,不需要依赖太多配置,所以这里使用一个简单的项目模板。
vue init webpack-simple demo1生成如下项目目录:(涂抹掉部分是后续会添加的文件)
2.封装组件
首先在src目录下新建一个文件夹myPlugin,在该文件夹下再建一个文件夹fileUpload(根据自己组件命名),在该文件夹下面建两个文件,fileUpload.vue和index.js。fileUpload.vue就是需要封装的组件。
3.安装依赖、运行项目
npm install
npm run dev
4.编写fileUpload.vue
我的项目组件内容较多,就不贴图了,按照正常组件的方法编写,以下图片是网上找的示例。
5.测试组件
在App.vue中使用fileUpload.vue组件,运行
npm run dev测试是否能正常使用。测试通过,进行下一步操作。
6.编写fileUpload下的index.js文件
// 导入封装的组件
import fileUpload from './fileUpload.vue'
const components = {
// 通过install来安装组件
install(Vue) {
Vue.component(
'fileUpload', fileUpload
)
}
}
// 注意这里的判断,很重要
if(typeof windwo !== 'undefined' && window.Vue) {
window.Vue.use(comment)
}
// 导出组件库
export default components
7.修改package.json文件
8.修改webpack.config.js文件
9.编译打包,生成的文件在dist目录下
npm run build
编译打包不报错才能进行下一步。
10.测试插件
npm pack
这步操作完成后,会在当前目录下生成一个xxx.tgz文件,如下图,我在package.json中的name是bigfileuploadvue,所以这里生成的文件是bigfileuploadvue-1.0.0.tgz,名字加版本号。
拷贝这个tgz文件,放到新的vue项目的某个目录下,我这里是放到新项目的src目录下。
在新项目执行命令
npm install 路径\xxxxx-1.0.0.tgz,这里的路径是绝对路径(点击文件右键选择copy path),执行结束后,在新项目的入口文件main.js里引入,运行npm run dev,如果不报错则引入成功,说明打包成功,就可以发布到npm上。
10.提交发布
- 在npm官网注册账号,地址www.npmjs.com/ ,注册成功后需要验证邮箱,会发送验证链接到你的注册邮箱。没有验证不能发布代码。package.json里的author尽量与npm账户一致
- 切换到需要发包的项目根目录下,
npm login,登录npm账号,输入用户名,密码,邮箱- 执行发布
npm publish发布前最好更新版本号npm version patch
11.下载安装,应用
- 确认是否发布成功,可以去官网自己的账号下看有没有已经发布的插件。或者在需要用到的项目中安装该npm包,
npm install bigfileuploadvue --save这里bigfileuploadvue是你打包的文件名,即package.json里的name- 在main.js中引入
- 在需要用到的组件中使用