如何将vue项目制作成组件并发布到npm仓库中

前言

vue作为当前前端主流框架,帮我们简化封装的同时还可以将我们自己的小项目发布的npm中央仓库,这是如果有人要使用我们的代码,我们不必在提供自己的项目源码,可以直接让使用者去npm仓库直接下载我们的项目,下面我们就来去实现以下自己的项目发布到npm吧

vue项目初始化

vue create fcsummer-translate(自己的项目名称)

image.png

编写组件

  1. 首先在src中新建package目录

image.png

这是我起的组件名
2. 编写组件

发布项目

  1. 在package根目录下创建index.js
//package/index.js
import FTranslate from "../package/f-translate/index.vue"; // 引入封装好的组件
const array = [FTranslate]; // 将来如果有其它组件,都可以写到这个数组里

// 批量组件注册
const install = function (Vue) {
    array.forEach((com) => {
        Vue.component(com.name, com);
    });
};

export default install; // 这个方法以后再使用的时候可以被use调用

这里的install方法是在以后我们使用npm i下载我们的组件后在main.js中引用

import fTranslate from 'fcsummer-translate'
import '../node_modules/fcsummer-translate/fcsummer-translate.css'
Vue.use(fTranslate) //默认调用上述install方法,让vue去注册我们写的组件
  1. 组件打包
    修改package.json文件
"scripts": {
  "serve": "vue-cli-service serve",
  "build": "vue-cli-service build",
  "lint": "vue-cli-service lint",
  "package": "vue-cli-service build --target lib ./src/package/index.js --name fcsummer-translate --dest fcsummer-translate"
},
  • –target lib 关键字 指定打包的目录
  • –name 打包后的文件名字
  • –dest 打包后的文件夹的名称

执行命令

npm run package

在命令执行完后我们可以在根目录找到fcsummer-transalte目录

image.png

发布npm仓库

切换到新生成的目录

cd fcsummer-translate

执行命令

npm init -y

初始化项目,还可以执行

npm init

执行后会逐一让你输入要发布的npm包名字,npm包的描述信息和npm包的作者

在package.json中我们填好描述信息

image.png

至此,本地工作基本完成

正式发布

  1. 注册账号
    npm官网
  2. 设置npm源(可选可不选)
npm config set registry=https://registry.npmjs.org
  1. 添加npm账户
npm adduser

需要填写你在npm官网注册的用户名和密码,只需要一次本地npm记住后以后就可以不用了
4. 发布npm

npm publish

如果在这报错,基本上原因就是你的npm包已经被别人占用了,重新编写一个就可以

下载引用

  1. 下载组件
npm i fcsummer-translate
  1. main.js中引用,这里一定要把css也引用上
import fTranslate from 'fcsummer-translate'
import '../node_modules/fcsummer-translate/fcsummer-translate.css'
Vue.use(fTranslate)

3.使用

<template>
  <div id="app">
  《fTranslate/>
  </div>
</template>

注意事项

在打包的时候我们最好–name和–dest相同,不然引用的时候会有找不到包的情况,如果名字重复,删除打包后的文件夹,重新打包

我的项目

[fbk111/fcsummer-translate: 提供中文生成拼音注释 (github.com)]

  1. 引用组件

image.png

  1. 传入content和fontSize
  2. 页面展示(我这里是写死的300px)

image.png

  1. 项目存在bug,希望前端大佬可以积极参与
  2. 已发布到npm

image.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1. 创建一个Vue组件库 首先,需要创建一个Vue组件库,并编组件代码。可以使用Vue CLI来快速创建一个Vue项目: ``` vue create my-component-library ``` 在创建项目时,需要选择手动选择特性,并勾选Babel、Router、Vuex和CSS Pre-processors等选项,以便后续使用。 然后,在src目录下创建components目录,并编组件代码。例如,创建一个HelloWorld组件: ```vue <template> <div>{{ message }}</div> </template> <script> export default { name: 'HelloWorld', props: { message: String } } </script> ``` 2. 配置打包命令 完组件后,可以使用vue-cli-service进行打包。在package.json文件添加以下命令: ```json "scripts": { "build": "vue-cli-service build --target lib --name my-component-library src/main.js" } ``` 其,--target lib表示打包为一个库,--name my-component-library表示库的名称为my-component-library,src/main.js表示入口文件。 3. 配置package.json 在package.json文件,需要添加以下配置: ```json { "name": "my-component-library", "version": "1.0.0", "description": "A Vue.js component library", "main": "dist/my-component-library.umd.js", "files": [ "dist/*", "src/components/*" ], "keywords": [ "vue", "component", "library" ], "author": "Your Name", "license": "MIT", "peerDependencies": { "vue": "^2.6.11" } } ``` 其,name、description、keywords、author、license等字段需要根据实际情况进行修改。main字段指定了库的入口文件,files字段指定了需要发布的文件列表,peerDependencies字段指定了依赖的Vue版本。 4. 发布npmnpm官网注册并登录账号后,进入项目目录,执行以下命令发布: ``` npm login npm publish ``` 其npm login需要输入用户名、密码和邮箱,npm publish会将当前目录下的文件发布npm仓库。 5. 使用组件库 其他项目可以使用npm install命令安装my-component-library: ``` npm install my-component-library ``` 然后,在需要使用的组件引入组件库,并注册组件即可: ```js import Vue from 'vue' import MyComponentLibrary from 'my-component-library' Vue.use(MyComponentLibrary) // 或者 import HelloWorld from 'my-component-library/src/components/HelloWorld.vue' Vue.component('HelloWorld', HelloWorld) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值