Vue封装组件发布npm包

229 阅读2分钟

参考以下两个博客。

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中引入
  • 在需要用到的组件中使用