(保姆级)vue封装并发布到npm仓库在多个项目使用

最近小编在面试的时候有面试官问到了这个问题并且问到了挺多关于封装的相关,所以小编未来将会做一个封装系列进行更新

1.首先讲一下封装,封装组件我们先初始化一个vue项目

(1)初始化vue项目
vue create my-app

(2)项目运行

npm run serve

运行好的效果是这样的

2.在src项目下新建一个package的文件夹,因为我们可能不止要封装一个组件,所以我们以后封装的组件都放在这个文件夹下面方便管理和寻找

然后我们在packag里面去创建两个文件夹代表我们的两个组件(一个是pig-button,另外一个是pig-input)

为了方便大家我把代码放这

//package/pig-button/index.vue
<template>
  <div>
    <button>我是测试按钮</button>
  </div>
</template>
<script>
export default {
  name: "pig-button", //组件名
};
</script>
<style scoped>
button {
  width: 100px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 10px;
  cursor: pointer;
}
</style>

然后我们要先引用到App.vue里面验证一下看组件能不能用,不能用的话发到npm也没用是吧

<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <pig-button></pig-button>
  </div>
</template>

<script>
import PigButton from './package/pig-button/index.vue'

export default {
  name: 'App',
  components: {
    PigButton
  }
}
</script>

<style>
#app {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
</style>

最终显示出来的效果是这样的,下面会跳出来一个测试按钮

3.使用bue的插件模式

这一步是封装组件的重点,用到的是vue提供的一个公开方法:install。这个方法会在你使用Vue.use(plugin)的时候被调用,这样使我们的插件注册到了全局,在子组件的任何地方都可以去使用了。

4.在package目录下载新建一个index.js文件,代码如下:

//package/index.js
import PigButton from "../package/pig-button/index.vue"; // 引入封装好的组件
const coms = [PigButton]; // 将来如果有其它组件,都可以写到这个数组里

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

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

上传代码主要的一项工作就是要将我们封装好的组件注册为全局组件,用到了vue.component()方法,当使用到Vue.use()的时候,我们的这个install方法就会执行了。

4.组件打包

到这里为止我们的组件封装就是基本完成了,要封装什么组件看大家自己的业务需求去封装就好了,接下来我们开始打包教程。

修改我们项目得package.json文件,配置打包命令:

"package": "vue-cli-service build --target lib ./src/package/index.js --name pig-ui --dest pig-ui"

大家肯定会好奇这个打包指令是啥意思对吧,那解释一下

  • --target lib 关键字 指定打包的目录
  • --name 打包后的文件名字
  • --dest 打包后的文件夹的名称

然后我们就开始执行打包的命令

npm run package

打包执行完成后我们项目目录下就会多出一个pig-ui文件夹,存放的是打包后的文件。

到这里打包完成。

5.发布到npm

首先我们要初始化package.json

想要发布到npm仓库的话,我们还得在pig-ui文件夹下初始化一个package.json文件。进入到pig-ui目录,执行命令。

npm init -y

竟我们只是测试对吧,所以我这里就不需要更改package.json文件,但我们要是生产的话,就最好加上版本描述啊还有版本号等等,其中name字段就是我们上传到npm仓库的名称。

6.发布到npm仓库

1.注册账号

想要发布到npm仓库,就必须要有一个账号,先去npm官网注册一个账号,注意记住用户名、密码和邮箱,发布的时候可能会用到。

2.设置npm源

可能有些老表本地的npm镜像源用的是淘宝镜像或者其他的,但是想要发布npm包,我们就要把我们的npm源切尾官方源,命令如下:

npm config set registry=https://registry.npmjs.org

(npm config set registry=https://registry.npmjs.org  这个才是完整的,上面这个因为有// csdn默认是注释了)

3.添加npm用户

进入pig-ui目录,添加npm用户,执行命令:

npm adduser

这里会让你填写用户名等等,如果之前设置过即可跳过此步。

4.发布npm

在pig-ui目录下执行命令:

npm publish

如果发布失败可能是名字重复了,改了名字即可,发布成功后,我们即可到npm官网上查看自己发布得npm包:

7.从npm安装使用

直接执行安装命令:

npm install pig-ui-test // 由于名字重复,改了个名字

然后在main.js引用注册,代码如下:

import PigUi from "pig-ui-test";
import "../node_modules/pig-ui-test/pig-ui.css";
Vue.use(PigUi);

这里单独引用了css,就和element-ui一样需要单独引入样式文件。

修改App.vue文件,直接使用组件pig-button,代码如下

<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <pig-button></pig-button>
  </div>
</template>
<script>
export default {
  name: 'App',
}
</script>

<style>
#app {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
</style>

展示如下:

到这里我们的组件就封装好了,并且可以直接从npm仓库下载使用。

总结

总体说来Vue组件封装发布到npm仓库整体难度不大,主要是理解Vue的install方法以及打包相关知识,其实最重要的还是如何封装一个适用范围广,扩展性高的公用组件。

都看到这里啦,关注一下吧么么哒

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue是一种用于构建用户界面的渐进式JavaScript框架,它可以通过封装组件来实现可复用、模块化以及易于维护的代码。下面我将介绍如何对Vue组件进行封装,并将其打发布npm上供他人使用。 首先,我们需要创建一个Vue项目,并在项目使用Vue CLI来进行组件的开发和构建。可以通过以下命令创建一个新的Vue项目: ``` vue create my-component ``` 接下来,您可以通过Vue CLI支持的任何方式(如单文件组件、JavaScript脚本等)创建自定义组件。在组件的开发过程,可以利用Vue提供的各种功能和特性,比如计算属性、生命周期钩子函数、模板语法等。确保你的组件功能完备、可复用且易于理解。 完成组件的开发后,我们需要将其打成可用的npmVue CLI可以帮助我们自动进行打,只需执行以下命令: ``` npm run build ``` 该命令将生成一个dist文件夹,其含了打后的组件代码。 接下来,我们需要在项目的根目录创建一个package.json文件,用于描述我们的npm,并设置一些配置信息。其,name字段用于定义npm的名称,version字段用于定义npm的版本号。其他字段根据您的需要进行设置。然后,执行以下命令将package.json文件拷贝到dist文件夹: ``` cp package.json dist/ ``` 然后,我们需要登录到npm官方网站,并创建一个账户。接着,使用以下命令进行登录: ``` npm login ``` 在登录成功后,使用以下命令发布npm: ``` npm publish dist/ ``` 完成上述步骤后,您的自定义Vue组件就已经发布到了npm上。其他开发者可以通过以下命令安装并使用您的组件: ``` npm install your-component ``` 然后,在他们的Vue项目,可以通过import语句引入您的组件,并在模板使用它。 至此,我们已经学习了如何封装自定义Vue组件,并通过npm发布,供他人使用。希望这能帮助到您!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Blue_路上

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

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

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

打赏作者

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

抵扣说明:

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

余额充值