• vue组件打包并发布到npm


    一、创建项目

    vue create 项目名称

    二、配置相关文件

    1.修改文件名

    src目录更改为-examples // 改成 examples 用作示例展示
    新增 packages   用于编写存放组件

    2.根目录下新建 vue.config.js文件

    因为src 目录更名为 examples ,导致项目无法运行
    在 vue.config.js 添加以下配置

    module.exports = {
      pages: {
        index: {
          entry: "examples/main.js",
          template: "public/index.html",
          filename: "index.html"
        }
      }
    }

    然后就可以在 packages  新建组件了 例如以下截图

      packages/lemonUploads/index.js 添加以下代码

    1. // 导入组件,组件必须声明 name
    2. import LemonUploads from './index.vue';
    3. // 为组件提供 install 安装方法,供按需引入
    4. LemonUploads.install = function(Vue) {
    5. Vue.component(LemonUploads.name, LemonUploads);
    6. };
    7. // 默认导出组件
    8. export default LemonUploads;

    将packages中的所有组件导出

    packages下新建 index.js 并添加

    1. // 导入组件
    2. import LemonUploads from './lemonUploads/index';
    3. // 存储组件列表
    4. const components = [LemonUploads];
    5. // 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
    6. const install = function (Vue) {
    7. // 遍历注册全局组件
    8. components.forEach((component) => {
    9. Vue.component(component.name, component);
    10. });
    11. };
    12. // 判断是否是直接引入文件
    13. if (typeof window !== 'undefined' && window.Vue) {
    14. install(window.Vue);
    15. }
    16. export default {
    17. // 导出的对象必须具有 install,才能被 Vue.use() 方法安装
    18. install,
    19. // 以下是具体的组件列表
    20. LemonUploads,
    21. };

    在组件项目中引入

    main,js中添加如下:

    1. // 导入组件库
    2. import LemonUploads from './../packages/lemonUploads/index'
    3. // 注册组件库
    4. app.use(Antd)
    5. app.use(LemonUploads)
    6. app.mount('#app')

    3.发布到npm

    1)更改配置文件-package.json

    1. "name": "lemon-upload",
    2. "version": "1.8.42",
    3. "private": false,
    4. "keyword": "上传文件 vue antdesign upload",
    5. "description": "基于vue3.x+antdesign的文件上传组件",
    6. "author": "LemonSong",
    7. "main": "",

    2)更改打包编译方式

    1. "scripts": {
    2. "serve": "vue-cli-service serve",
    3. "build": "vue-cli-service build",
    4. "lint": "vue-cli-service lint",
    5. "lib": "vue-cli-service build --target lib --name lemonUploads --dest lib packages/index.js"
    6. },

    3)新增.npmignore文件 写入一些不必要上传的文件名称

    1. .DS_Store
    2. node_modules/
    3. examples/
    4. public/
    5. packages/
    6. vue.config.js
    7. babel.config.js
    8. *.map
    9. *.html
    10. # local env files
    11. .env.local
    12. .env.*.local
    13. # Log files
    14. npm-debug.log*
    15. yarn-debug.log*
    16. yarn-error.log*
    17. # Editor directories and files
    18. .idea
    19. .vscode
    20. *.suo
    21. *.ntvs*
    22. *.njsproj
    23. *.sln
    24. *.sw*

     4)打包编译

    npm  run lib

    5)发布npm

    登录npm

    npm login

    发布命令

    npm publish

     

  • 相关阅读:
    win11 无法登录微软账户 终极解决方案
    Python使用修饰函数判断执行时间
    SASS/SCSS精华干货教程
    HTML期末作业,基于html实现中国脸谱传统文化网站设计(5个页面)
    【面向对象】【0x00】 Python面向对象介绍
    electronjs入门-编辑器应用程序
    Visual Studio 集成了.NET 升级助手插件
    桂院校园导航 | 云上高校导航 云开发项目 二次开发教程 1.2
    windows安装metesploit遇到的问题
    TP5搭配layui2.x的form表单ajax提交
  • 原文地址:https://blog.csdn.net/qianqianNingmeng/article/details/126049167