vue2自定义组件通过rollup配置发布到npm的详细步骤

创建Vue组件库项目首先,我们需要创建一个Vue组件库的项目。我们可以使用Vue CLI来快速创建一个基础的Vue项目。

vue create my-component-library

配置rollup接下来,我们需要配置rollup以构建我们的组件库。创建一个名为rollup.config.js的文件并添加以下代码:

import vue from 'rollup-plugin-vue';
import babel from 'rollup-plugin-babel';
import commonjs from 'rollup-plugin-commonjs';
import resolve from 'rollup-plugin-node-resolve';
import { terser } from 'rollup-plugin-terser';
export default [
  {
    input: 'src/main.js',
    output: [
      {
        file: 'dist/my-component-library.js',
        format: 'esm',
      },
      {
        file: 'dist/my-component-library.min.js',
        format: 'esm',
        plugins: [
          terser({
            output: {
              ecma: 6,
            },
          }),
        ],
      },
    ],
    plugins: [
      vue(),
      resolve({
        extensions: ['.js', '.vue'],
      }),
      commonjs(),
      babel({
        exclude: 'node_modules/**',
        plugins: ['@babel/external-helpers'],
      }),
    ],
    external: ['vue'],
  },
];

这个配置文件告诉rollup如何构建我们的组件库。它使用了一些常用的rollup插件,例如vue、babel、commonjs和resolve。其中,我们将Vue作为外部依赖,因为我们将在应用中使用Vue,而不是在组件库中打包Vue。我们使用了两个输出配置项,一个是未压缩的文件,一个是压缩后的文件。这两个文件将以ES模块的形式输出,以便其他项目可以使用import语法导入我们的组件库。

3. 编写组件在src目录下,我们可以创建我们的Vue组件。例如,在src/components目录下,我们可以创建一个Button.vue组件。

<template>
  <button class="btn" :class="type">{{ text }}</button>
</template>
<script>
export default {
  name: 'Button',
  props: {
    text: {
      type: String,
      required: true,
    },
    type: {
      type: String,
      default: 'primary',
    },
  },
};
</script>
<style>
.btn {
  padding: 10px 20px;
  border-radius: 5px;
  font-size: 16px;
  cursor: pointer;
}
.primary {
  background-color: #42b983;
  color: #fff;
}
.secondary {
  background-color: #fff;
  color: #42b983;
  border: 1px solid #42b983;
}
</style>

4.导出组件在src/main.js中,我们可以导出我们的组件。

import Button from './components/Button.vue';
export { Button };

5.构建组件库现在,我们可以使用npm run build命令来构建我们的组件库。这将使用我们在步骤2中创建的rollup配置文件来构建组件库。

5.1.在打包发布之前,还需要package.json的配置

这个文件包含了我们的项目信息和依赖信息。我们需要确保package.json文件中的信息正确,以便其他人使用我们的组件库时可以正确地安装和使用它。

下面是一个示例package.json文件:

{
  "name": "my-component-library",
  "version": "1.0.0",
  "description": "A Vue component library",
  "main": "dist/my-component-library.js",
  "module": "dist/my-component-library.esm.js",
  "files": [
    "dist/*",
    "src/*"
  ],
  "scripts": {
    "build": "rollup -c",
    "dev": "rollup -c -w",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "vue",
    "component",
    "library"
  ],
  "author": "Your Name",
  "license": "MIT",
  "dependencies": {
    "vue": "^2.6.10"
  },
  "devDependencies": {
    "@babel/core": "^7.4.5",
    "@babel/preset-env": "^7.4.5",
    "@vue/component-compiler-utils": "^3.1.1",
    "babel-plugin-external-helpers": "^6.22.0",
    "rollup": "^1.20.0",
    "rollup-plugin-babel": "^4.3.3",
    "rollup-plugin-commonjs": "^10.0.0",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-terser": "^5.1.2",
    "rollup-plugin-vue": "^5.1.9"
  }
}

我们需要确保以下信息正确:

  • "name":组件库的名称
  • "version":组件库的版本号
  • "description":组件库的描述信息
  • "main":组件库的入口文件路径
  • "module":以ES模块的形式输出的文件路径
  • "files":要包含在发布包中的文件
  • "keywords":一些关键词,用于描述组件库
  • "author":组件库的作者信息
  • "license":组件库的许可证信息
  • "dependencies":组件库需要的依赖
  • "devDependencies":开发时需要的依赖确保以上信息正确后,我们可以运行以下命令将package.json文件中的依赖安装到我们的项目中:
npm install

接下来,我们可以使用npm run build命令构建我们的组件库,使用npm publish命令将其发布到npm上。

npm run build

6.发布组件库一旦我们构建了我们的组件库,我们可以将其发布到npm上。确保你已经在npm上注册了一个账号。然后,使用以下命令登录:

npm login

然后,使用以下命令发布组件库:

npm publish

7.在其他项目中使用组件库现在,我们已经将组件库发布到npm上了,我们可以在其他项目中使用它。首先,我们需要安装组件库:

npm install my-component-library

然后,我们可以在我们的Vue应用中import我们的组件:

import { Button } from 'my-component-library';
export default {
  name: 'App',
  components: {
    Button,
  },
};

现在,我们可以在我们的Vue应用中使用我们的Button组件了。

到此这篇关于vue2自定义组件通过rollup配置发布到npm的文章就介绍到这了,更多相关vue2自定义组件发布到npm内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • vue2中如何自定义组件的v-model

    目录 如何自定义组件的v-model 父组件 子组件 SearchTab 子组件示例 vue2与vue3在自定义组件v-model的区别 在vue2中,通常这样实现 在vue3中,通过这样实现 如何自定义组件的v-model 工作中经常会涉及到父子组件数据更新和页面相应数据样式改变的问题. 通俗点来说,就是涉及到公共组件的可以抽离出来作为子组件,如果父组件中与子组件相关的数据改变,子组件中的数据也会改变,如果子组件的数据改变,则需要做一定的处理才能改变父组件中的相关数据. 处理方式:考虑使用 自

  • vue2.0 自定义组件的方法(vue组件的封装)

    一.前言 之前的博客聊过 vue2.0和react的技术选型:聊过vue的axios封装和vuex使用.今天简单聊聊 vue 组件的封装. vue 的ui框架现在是很多的,但是鉴于移动设备的复杂性,兼容性问题突出.像 Mint-UI 等说实话很不错了,但是坑也是不少,而且很多功能也是仅凭这些实现不了,这需要我们去封装自己的可复用组件 二.封装组件的步骤 1. 建立组件的模板,先把架子搭起来,写写样式,考虑你的组件的基本逻辑. os:思考1小时,码码10分钟,程序猿的准则. 2. 准备组件的好数据

  • vue2自定义组件通过rollup配置发布到npm的详细步骤

    创建Vue组件库项目首先,我们需要创建一个Vue组件库的项目.我们可以使用Vue CLI来快速创建一个基础的Vue项目. vue create my-component-library 配置rollup接下来,我们需要配置rollup以构建我们的组件库.创建一个名为rollup.config.js的文件并添加以下代码: import vue from 'rollup-plugin-vue'; import babel from 'rollup-plugin-babel'; import comm

  • 最新IntelliJ IDEA 2021版配置 Tomcat 8.5 的详细步骤

    推荐文章: idea最新激活 idea2021激活码 之前给大家介绍过 IntelliJ IDEA 2021 Tomcat 8启动乱码问题的解决步骤 需要的朋友点击查看. 一.官网下载Tomcat 8 1. 选择64位的Tomcat 8 2.下载到本地 3.解压 4.解压后目录结构如下 二.打开IDEA 创建一个web模块 1.创建一个maven Web项目 2.项目名及路径 3.检查maven 本地仓库以及版本,没问题即可完成创建 三.IntelliJ IDEA2021 配置Tomcat 8.

  • 用vue封装插件并发布到npm的方法步骤

    一.基于vue的国家区号列表 vue-flag-list包含了大部分国家的区号,点击右边的三角形展开列表可以选择国家区号,若列表中没有区号,也可以自己输入区号. 全球区号列表 1.1 初始化组件 用的是vue-cli来初始化组件,虽然有很多东西不需要,因为对这个比较熟悉,所以还是按照这个步骤来. vue init webpack vue-flag-list cd vue-flag-list cnpm install npm run dev 1.2 根据自己的需求,实现具体功能,我的主要功能写在v

  • 基于Vue3实现前端埋点上报插件并打包发布到npm的详细过程

    目录 项目环境搭建 插件开发 点击事件上报 vue自定义指令 手动上报方法 页面访问次数上报(pv,uv) 页面停留时间(TP) 获取公共参数 引入axios 打包发布 使用说明 Option Options 示例 点击指令上报 手动上报 写在最后 前端埋点对于那些营销活动的项目是必须的,它可以反应出用户的喜好与习惯,从而让项目的运营者们能够调整策略优化流程提高用户体验从而获取更多的$.这篇文章将实现一个Vue3版本的埋点上报插件,主要功能有 通过Vue自定义指令形式实现点击事件上报 提供手动调

  • nodejs教程 安装express及配置app.js文件的详细步骤

    安装express.js 如果你安装了npm,安装变得很简单,只需要在终端中运行下面的代码即可: 复制代码 代码如下: npm install express -gd -g代表安装到NODE_PATH的lib里面,而-d代表把相依性套件也一起安装.如果沒有-g的话会安装目前所在的目录(会建立一个node_modules的文件夹),你可以透过以下指令来比较两者的不同: 复制代码 代码如下: npm list -gnpm list 如果没有npm,那么我可以使用github来git下来最新的expr

  • Vue2.0仿饿了么webapp单页面应用详细步骤

    部分截图 安装&&运行: 1.安装 node:http://nodejs.cn/download/ 安装 git:https://git-scm.com/downloads 2.从我的仓库克隆代码: $ git clone https://github.com/ColinScales/shell 3.安装vue脚手架工具vue-cli: $npm install vue-cli -g 4.进入代码根目录安装依赖: $ npm install --save-dev 5.运行命令: $ npm

  • 最新IntelliJ IDEA 2022配置 Tomcat 8.5 的详细步骤演示

    目录 一.官网下载Tomcat 8 1. 选择64位的Tomcat 8 2.下载到本地 3.解压 4.解压后目录结构如下 二.打开IDEA 创建一个web项目 1.创建一个maven Web项目 2.创建完成如下: 三.IntelliJ IDEA2021 配置Tomcat 8.5.66 1.按箭头所示,打开配置面板 2.点击+ 3.选择Tomcat server 下面的local 4.点击箭头所示位置,打开配置面板 5.打开箭头所指位置,导入本地Tomcat 6.选择刚刚解压好的Tomcat目录

  • nginx配置IP白名单的详细步骤

    目录 1.添加IP白名单文件 2.配置nginx.conf 3.编辑白名单的提示导航页面 补充:添加白名单后nginx报错: 总结 分析nginx访问日志,有哪些IP访问过nginx. 命令参考:awk '{print $1}' logs/access.log | sort | uniq -c | sort -nr -k1 输出的效果案例: 1053 192.168.3.15893 192.168.3.10818 192.168.0.8 1.添加IP白名单文件 在nginx目录的 conf 中添

  • 自定义vue组件发布到npm的方法

    本文介绍了自定义vue组件发布到npm的方法,分享给大家,具体如下: 为什么会有这个想法呢,主要是vue项目中自定义的组件在多个项目中使用.导致修改bug的时候,总是要在项目分支中修改,然后同步到主线上,这样容易导致分支修改后没有同步到主线,慢慢的就会导致组件版本不统一,而导致升级组件很繁琐,最后可能都要去维护多个组件的不同版本,这样不是我们想要的. 所以就打算将组件打包发布到npm上,每个项目中只需要在package.json中修改组件版本即可同步最新版本. 组件发布历程 1.开始对打包不是很

  • Vue组件库发布到npm详解

    制作了一套自己的组件库,并发布到npm上,项目代码见https://github.com/hamger/hg-vcomponents 前期准备 有一个npm账号 安装了vue-cli 搭建项目 vue init webpack hg-vcomponents cd hg-vcomponents cnpm install 目录结构 - vue-flag-list + build + dist // 存放发布到npm的代码 - src - components // 存放组件源代码 和 README.

随机推荐