把vue组件发布到npm

一直以来项目都使用他人开发的组件,于是乎自己也想倒腾着做一个,发布到npm 在其他项目里直接使用,这个组件上传和纯js 还是有一定区别的,在这个过程中也遇到了一些小问题,网上找了许多案例,都不是太全面,趁有时间自己记录一下

在这里插入图片描述

参考网上大佬案例改装一个适合自己需求的运动的时间刻度

一、项目创建

首选是创建一个项目,这个就不用说了,大家都会

c:> vue create my-project

二、组件编写

在src/components下创建一个TimeAxisAuto.vue
在这里插入图片描述

三、全局注册

再建一个indx.js来进行组件全局注册


import Vue from "vue";
import TimeAxisAuto from "./TimeAxisAuto.vue";

const Components = {
  TimeAxisAuto
};

Object.keys(Components).forEach(name => {
    Vue.component(name, Components[name]);
});

export default Components;

四、配置package.json

其中大致配置

{
  "name": "time-axis-auto", // 包名字
  "version": "0.1.3", //包版本,x.x.x的格式,符合语义化版本规则
  "description": "It is a running timeline component. ", //一些描述信息
  "main": "./dist/time-axis-auto.common.js", // 入口文件,这里指定为dist目录下打包生成的js
  "author": "dex", //作者信息
  "email": "d1236688@163.com", // 邮件地址
  "license": "ISC",// 许可证,默认是ISC、有的默认是MIT
  "scripts": { // 运行脚本命令
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "distribute": "vue-cli-service build --target lib --name time-axis-auto ./src/components/index.js" // 这里我们使用@vue/cli 3.0自带的打包功能,将项目打包
  },
  "bugs": {
    "url": "https://github.com/dengxiaoning/time-axis-auto.git"
  },
 }

五、 配置vue.config.js


module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
  css:{ // 这一步配置将css强行内联,否则发布后的组件在使用时不会携带css
    extract:false
  }
}

publicPath: process.env.NODE_ENV === 'production' ? './' : '/',这步用于修改vue加载资源目录

css:{ // 这一步配置将css强行内联,否则发布后的组件在使用时不会携带css extract:false }

六、 打包发布

好了配置完成后

1. 执行npm run distribute将项目打包
/  Building for production as library (commonjs,umd,umd-min)...

 DONE  Compiled successfully in 2551ms                                                                          18:49:03

-  Building for production as library (commonjs,umd,umd-min)...

 DONE  Compiled successfully in 2713ms                                                                          18:49:03

/  Building for production as library (commonjs,umd,umd-min)...

 DONE  Compiled successfully in 3184ms                                                                          18:49:04

  File                              Size                 Gzipped

  dist\time-axis-auto.umd.min.js    21.79 KiB            11.32 KiB
  dist\time-axis-auto.umd.js        44.76 KiB            16.82 KiB
  dist\time-axis-auto.common.js     44.28 KiB            16.67 KiB

  Images and other types of assets omitted.
2. 再执行 npm publish ( 取消发布 npm unpublish --force xxx包名 )

ok 发布成功

直接 npm install time-axis-auto --save

.vue import 'time-axis-auto' 即可全局使用了

练习案例在线demo https://www.benpaodehenji.com/timeline/

源码地址 https://github.com/dengxiaoning/time-axis-auto.git"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将 Vue 组件发布npm 上,可以按照以下步骤进行操作: 1. 在你的项目根目录下,使用 `npm init` 命令创建一个 `package.json` 文件。 2. 在 `package.json` 中添加 `main` 属性,指定组件的入口文件路径,例如: ``` "main": "dist/my-component.js", ``` 这里假设你的组件入口文件是 `my-component.js`,并且已经打包到了 `dist` 目录下。 3. 在项目根目录下创建一个 `.npmignore` 文件,用于指定哪些文件不需要被发布npm 上。例如: ``` node_modules/ dist/ ``` 这里的意思是排除 `node_modules` 和 `dist` 目录,因为这些文件夹通常都比较大,而且在安装组件时也不需要这些文件。 4. 在 `package.json` 中添加 `scripts` 属性,用于定义打包命令,例如: ``` "scripts": { "build": "vue-cli-service build --target lib --name my-component src/index.js" }, ``` 这里假设你使用 Vue CLI 3.x 创建了组件项目,并且入口文件是 `src/index.js`。运行 `npm run build` 命令会将组件打包到 `dist` 目录下。 5. 添加 `peerDependencies` 属性,用于指定组件的依赖关系,例如: ``` "peerDependencies": { "vue": "^2.6.10" }, ``` 这里假设你的组件依赖于 Vue 2.x 版本。 6. 确认所有依赖项都已经安装完成,然后使用 `npm login` 命令登录到 npm 账号。 7. 使用 `npm publish` 命令将组件发布npm 上,例如: ``` npm publish ``` 这里假设你已经在 `package.json` 中指定了包名和版本号。 发布成功后,其他人就可以通过 `npm install` 命令安装你的组件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的痕迹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值