IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 自己开发的vue组件打包并发布到npm,并在项目中使用 -> 正文阅读

[JavaScript知识库]自己开发的vue组件打包并发布到npm,并在项目中使用

第一步:使用?vue init webpack-simple lyh-yan-ui? ?初始化项目

提示:?不要用 vue init webpack lyh-yan-ui?初始化项目,因为我们就开发个组件,不需要那么多配置,配置多了修改起来也麻烦,webpack-simple足够了。

初始项目过程中,按照提示输入项目信息,

初始化成功后,输入?npm install , npm run dev 让项目跑起来,如下图:

第二步:修改文件目录

1.在src目录下新建components文件夹,然后在此文件夹下建立你的组件文件,其中我的组件有多个,所以每个组件新建一个文件夹,比如button组件,新建button文件夹,文件夹中新建button.vue文件和index.js文件;

2.在webpack.config.js同级目录(也是该组件的根目录)下新建 index.js文件, index.js是把所有的组件文件暴露出去的出口。

修改完之后的文件目录如下图所示:

第三步:修改文件内容,配置

1.button.vue内容如下(注意要添加组件的name,后面要用到):

//组件只是最基础的内容,自己要实现的功能自己添加
<template>
  <div>
    <button class="y-button" :class="classes" @click="handle">
      <y-icon v-if="icon" :icon="icon"></y-icon>
      <y-icon v-if="loading" icon="y-icon-jiazaizhong"></y-icon>
      <!-- 加载中按钮设置 -->
      <div :class="{ content: icon || loading }">
        <slot></slot>
      </div>
    </button>
  </div>
</template>

<script>
import YIcon from "../icon/icon.vue";
export default {
  name: "YButton",
  components: {
    YIcon,
  },
  
</script>

2.所有的组件文件完成后,根目录下的index.js文件将所有的组件暴露出去。

import YButton from './src/components/button/button.vue';
import YCarousel from './src/components/carousel/Carousel.vue';
import YCarouselItem from './src/components/carousel/carousel-item.vue';
import YCascader from './src/components/cascader/cascader.vue';
import YCascaderItem from './src/components/cascader/cascader-item.vue';
import YCollapse from './src/components/collapse/collapse.vue';
import YCollapseItem from './src/components/collapse/collapse-item.vue';
import YIcon from './src/components/icon/icon.vue';

const components = [
	YButton,
    YCarousel,
    YCarouselItem,
    YCascader,
    YCascaderItem,
    YCollapse,
    YCollapseItem,
    YIcon
]
const install = function(Vue, opts = {}) {
	components.forEach(component => {
	    Vue.component(component.name, component);
    });
}
if (typeof window !== 'undefined' && window.Vue) {
  install(window.Vue);
}
 
export default {
	install,
	YButton,
    YCarousel,
    YCarouselItem,
    YCascader,
    YCascaderItem,
    YCollapse,
    YCollapseItem,
    YIcon
}

3.修改package.json

package.json需要修改private字段(private是true的时候不能发布到npm,需设置成false); 并增加main字段, main字段是require方法可以通过这个配置找到入口文件

4.修改 webpack.config.js

其实就是修改entry 和output,截图如下:

?6.修改index.html的js引用路径,因为我们修改了output 的 filename,所以引用文件的名字也得变。

?到此组件就开发完了,打包, npm run build ,生成了dist下生成了俩文件,如下:

第四步: 发布到npm

1. 去 npm 官网注册个账号?npm

2.在该组件根目录下的终端(就是 平常输入 npm run dev的地方),运行npm login,会提示输入个人信息,Email是发布成功后,自动给这个邮箱发送一个邮件,通知发布成功,输入完,登录成功。

这里登录的时候可能会遇到这个问题,可能是因为网络的原因导致所以多登录几次。

3.最后就可以发布了, npm publish, 发布成功(注意:每次发布的时候packa.json 里面的 version不能一样,不然不能发布出去,手动改下版本就行,另外有时候如果你的名字已经有包发布过了也会发布失败,所以发布之前可以先去搜搜你的这个组件包的名字有没有被发布过。)

?发布成功之后就可以上自己的npm库里查看了。

这里如果遇到解决403的问题解决办法办法是?:

解决的办法是执行npm config set registry https://registry.npmjs.org/将镜像切回。即可正确完成登录操作。

也有可能是因为你要发布的包的版本号或者包的类名与之前发过的包重名导致

第五步: 下载使用

在项目中终端直接执行安装命令:npm i?lyh-yan-ui?

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

import LyhYanUi?from 'lyh-yan-ui?i'

Vue.use(LyhYanUi);

注册为全局组件就可以在项目的任意位置使用


踩坑记录

vue2安装sass-loader报错解决

主要是因为node-sass和sass-loader这些个版本冲突,最终试到了一个成功的版本。

使用命令:

npm install sass@1.26.5

npm install sass-loader@7.3.1

解决问题。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:46:33  更:2022-10-31 11:49:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 15:05:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码