当前位置:   article > 正文

npm上传发布自定义组件超详细流程_使用vue3和element plus 自定义组件库进行发布

使用vue3和element plus 自定义组件库进行发布

前言

        vue3,vite,基于element Plus 的el-table二次封装表格并且上传到npm上,让别人可以通过npm安装你的插件。

一、创建一个新的vue 项目

npm create vue@latest

自己取一个名字,然后一直回车

完成以后进入项目npm i,有用到element Ui也要安装下 

npm install element-plus –save

安装完成在main.js里面引入

  1. import { createApp } from "vue";
  2. import App from "./App.vue";
  3. import ElementPlus from "element-plus";
  4. import "element-plus/dist/index.css";
  5. createApp(App).use(ElementPlus).mount("#app");

二、编写插件代码

src下新建一个package文件夹,文件夹下面新建commonTable存放你写的组件,package文件夹下再新建一个index.js,用来打包时候的入口文件.
比较重要的点是这个组件名称一定要填好,这个是你最后引入插件的时候,使用的全局组件的名称.

你编写的组件代码:

Index.js 
  1. import LyTableLast from "./commonTable/index.vue"; // 引入封装好的组件
  2. const components = [LyTableLast];
  3. const install = function (App, options) {
  4. components.forEach((component) => {
  5. // 这个name是你创建组件的时候要填写好的
  6. App.component(component.name, component);
  7. });
  8. };
  9. export default { install };

三、修改配置文件

修改vite.config.js文件

  1. import { fileURLToPath, URL } from "node:url";
  2. import { defineConfig } from "vite";
  3. import vue from "@vitejs/plugin-vue";
  4. // 第一步
  5. import path from "path";
  6. export default defineConfig({
  7. plugins: [vue()],
  8. resolve: {
  9. alias: {
  10. "@": fileURLToPath(new URL("./src", import.meta.url)),
  11. },
  12. },
  13. // 第二步
  14. build: {
  15. lib: {
  16. entry: path.resolve(__dirname, "src/package/index.js"),
  17. name: "commonTable",
  18. fileName: (format) => `common-table.${format}.js`,
  19. },
  20. rollupOptions: {
  21. // 确保外部化处理那些你不想打包进库的依赖
  22. external: ["vue"],
  23. output: {
  24. // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
  25. globals: {
  26. vue: "Vue",
  27. },
  28. },
  29. },
  30. },
  31. });

修改package.json文件

  1. {
  2. "name": "last-table",
  3. "version": "0.0.0",
  4. "scripts": {
  5. "dev": "vite",
  6. "build": "vite build",
  7. "preview": "vite preview"
  8. },
  9. "dependencies": {
  10. "element-plus": "^2.4.3",
  11. "ly-table-last": "^1.0.1",
  12. "vue": "^3.3.4"
  13. },
  14. "devDependencies": {
  15. "@vitejs/plugin-vue": "^4.4.0",
  16. "vite": "^4.4.11"
  17. },
  18. "description": "This template should help get you started developing with Vue 3 in Vite.",
  19. "main": "vite.config.js",
  20. "keywords": [],
  21. "author": "",
  22. "license": "ISC"
  23. }

四、打包插件

修改完之后执行,会得到一个dist文件夹这个就是打包以后的文件

 npm run build

五、测试插件

测试插件是否正常执行,这里面的LyTableLast可以随便取名但是你引用组件的时候需要引用你的组件内创建的那个名称

  1. import { createApp } from "vue";
  2. import App from "./App.vue";
  3. import ElementPlus from "element-plus";
  4. import "element-plus/dist/index.css";
  5. // 打包之前测试
  6. // import LyTableLast from './package';
  7. // 打包之后测试方法
  8. import LyTableLast from "../dist/common-table.es.js";
  9. // 上线之后测试
  10. // import LyTableLast from "ly-table-last";
  11. createApp(App).use(ElementPlus).use(LyTableLast).mount("#app");

我在app.vue里面直接使用,这里使用的组件名称需要是你组件内取名的组件名称

六、发布插件

进入到dist文件根目录下cmd执行

npm init -y

会在dist文件下生成一个package文件

修改name,这个name是别人下载你的插件的名称,注意要是小写不能特殊字符..版本号第一次就默认更新的话就要手动修改

还是在dist根目录下cmd 执行

npm adduser

输入你的npm账号密码验证,验证完成输入

npm publish

出现下面的就是成功了

最后自己新建一个项目测试一下

使用方法就是 // 新建项目 执行

npm i '你的插件名称'

执行一下第五步测试环节

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/379313
推荐阅读