记录vite打包并上传到npm

开始

起因:我们单位这个项目用的vite+react使用print打印 开发环境没问题、一到打包时就卡住、所以我就想单独打包成组件在引用看看还有问题么、结果还真可以!又是离谱的一天

  • 首先需要把npm的分支切换成官网地址、因为只有官网地址才能登陆npm账号

这里说一下我是用nrm切换 直接全局下载nrm之后百度搜怎么用就可以
https://www.npmjs.com npm官网地址 没有账号的自己去注册

  • 之后就要登录npm 在项目中直接npm login 就行、可能这里会报错、因为切换完npm官网地址需要退出重新进一下编辑器、一定要大退、之后就按要求输入用户名密码就行啦、
  • 之后我们说一下vite配置、我把代码放在下面

package.json

{
  "name": "lymn-print-com",
  "main": "./dist/lymn-print-com.cjs",
  "module": "./dist/lymn-print-com.js",
  "version": "0.0.39",
  "private": false,
  "files": [
    "dist"
  ],
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview"
  },
  "dependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  },
  "devDependencies": {
    "@claviska/jquery-minicolors": "^2.3.6",
    "@types/react": "^18.2.66",
    "@types/react-dom": "^18.2.22",
    "@vitejs/plugin-react": "^4.2.1",
    "bwip-js": "^4.0.0",
    "canvg": "^3.0.10",
    "chai": "^4.1.2",
    "eslint": "^8.57.0",
    "eslint-plugin-react": "^7.34.1",
    "eslint-plugin-react-hooks": "^4.6.0",
    "eslint-plugin-react-refresh": "^0.4.6",
    "html2canvas": "^1.4.1",
    "jquery": "^3.6.0",
    "jsbarcode": "^3.11.5",
    "jspdf": "^2.5.1",
    "nzh": "^1.0.8",
    "rollup-plugin-copy": "^3.5.0",
    "socket.io-client": "^4.5.1",
    "vite": "^5.2.0"
  }
}

这里说一下files这个很重要 因为没有这个到时候会把所有的文件都传到npm上、其次private一定要设置false 如果需要直接访问你包下的文件一定不要exports这个选项、

vite.config.js

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
import copy from 'rollup-plugin-copy'
export default defineConfig({
  plugins: [react()
  ],
  build: {
    lib: {
      entry: 'src/hiprint/hiprint.bundle.js', // 你的库入口文件  
      name: 'HiprintReact9', // 库的名称,将在 UMD 构建中用作全局变量  
      formats: ['es', 'cjs', 'umd'], // 输出的格式  
    },
    rollupOptions: {
      plugins: [
        copy({
          targets: [
            { src: 'src/hiprint/css/*', dest: 'dist/css' },// 将 CSS 复制到 dist 下的目标目录  
            // { src: 'src/hiprint/css/hiprint.css', dest: 'dist/hiprint.css' } // 将 CSS 复制到 dist 下的目标目录  
            // 可以添加更多的 copy 目标  
          ],
          verbose: true,
          flatten: false
        })]
    }
  },
})

这里本打算用copy这个组件复制的、但是一直没有用、之后这些css我还需要、想拉半天才发现自己挺der、直接放public下就可以的 废这么大进、那位大佬知道copy为啥不行可以告诉我一下、谢谢
在这里插入图片描述

  • 最后npm publish 就可以啦 这就是我研究半天的成果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/535125.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac上的最佳3D建模工具-犀牛Rhinoceros 8 for Mac v8.6.24101.05002完美兼容激活

Rhino 8是一款计算机辅助设计(CAD)和三维建模软件,由美国公司McNeel & Associates开发。它是Rhino系列的最新版本,用于创建、编辑、分析、渲染和动画三维模型。 以下是Rhino 8的一些主要特点和功能: 1. **强大的…

五、书架开发--1.书架标题组件交互、获取书架数据

添加书架页面,做路由配置 首先添加书架页面,到views中的store中添加一个StoreShelf表示书架 然后到路由中进行注册 然后书城首页的返回键我们是想要点击返回的话就跳转到书架页面,所以如下this.$router.push(/store/shelf) 做书架标题组件 …

Nevion视频会议光端机AAV-3G-XMUX系列

序号型号描述(厂商:Nevion)3G/HD/SD-SDI 视音频光端机,0-20km1AAV-3G-XMUX-SFP3G/HD/SD-SDI 音频嵌入/解嵌器模块,带SFP光模块插座。支持4路AES加嵌和解嵌,8路模拟音频加嵌。内置音频矩阵及处理器模块&…

【spring】@Profile注解学习

Profile介绍 在Spring框架中,Profile注解用于根据特定的配置文件来有条件地激活或禁用Bean的定义。这在开发和测试过程中非常有用,因为它允许你为不同的环境(如开发、测试、生产)定义不同的配置。 Profile不仅可以标注在方法上&…

PCB封装库的创建及引入

法1 1.创建lib 2.放置 找到你想要画的封装的器件的数据手册了解相关信息。 直插式选Multi-layer 贴片选Top-layer 焊盘尺寸 焊盘空尺寸 法2 嘉立创eda直接copy 再嘉立创中找到你想要的pcb,导出为ad 然后再ad中找到我们导出的文件 复制他 然后再库中粘贴 pcb库…

【算法】哈希表

个人主页 : zxctscl 如有转载请先通知 题目 1. 1. 两数之和1.1 分析1.2 代码 2. 面试题 01.02. 判定是否互为字符重排2.1 分析2.2 代码 3. 217. 存在重复元素3.1 分析3.2 代码 4. 219. 存在重复元素 II4.1 分析4.2 代码 5. 49. 字母异位词分组5.1 分析5.2 代码 1. 1…

L2-2 巴音布鲁克永远的土(二分+并查集)

思路:我们可以二分答案,然后判断当前答案合不合理。 对于判断答案合理,可以用并查集,看mid能否把所有检查点连进一个集合中,枚举每个结点,如何当前结点周围的四个方向可以连的话,就加进同一个集…

“桃花庵主”是我国哪位古代名人的称号?2024年4月12日蚂蚁庄园今日答案

原文来源:蚂蚁庄园今日答案 - 词令 蚂蚁庄园是一款爱心公益游戏,用户可以通过喂养小鸡,产生鸡蛋,并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料,使用鸡饲料喂鸡之后,会可以获得鸡蛋&…

如何在群晖本地搭建在线PS工具Potopea并实现无公网IP远程编辑图片

文章目录 1. 部署Photopea2. 运行Photopea3. 群晖安装Cpolar4. 配置公网地址5. 公网访问测试6. 固定公网地址 本文主要介绍如何在群晖NAS使用Docker部署Potopea在线图片编辑工具,并结合cpolar内网穿透实现公网环境可以远程访问本地部署的Potopea. Photopea是一款强大…

为什么使用MQ????

1、异步处理 场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种 1.串行的方式 2.并行的方式。 串行方式: 将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。 这有一个问题是,邮件,短信并不是…

【全网独家】oceanbase容器重启时报obshell failed错误,无法正常启动的问题处理

正常运行的oceanbase容器,重新启动该容器却启动不了,重启服务器也无法恢复,报obshell failed错误,无法正常启动,本文记录了问题处理过程。 一、问题现象 1、正常运行的oceanbase容器,重启却启动不了 2、运…

C++之双向链表与哈希链表用法区别实例(二百六十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

在vite中限制node版本

1.修改package.json文件 {"name": "wine-store-frontend","version": "0.0.0","private": true,"type": "module","scripts": {"dev": "vite --open","build"…

MATLAB有限元结构动力学分析与工程应用-徐斌|【PDF电子书+配套Matlab源码】

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现,并提供所有案例完整源码;2.单元…

编译原理 学习笔记

1、代码: (1 2) * 3 2、词法解析: 3、抽象语法树: 4、语法树递归下降求值: 先Current_Node是根节点乘号,乘号,是中缀运算符,找左子节点,是加号,加号是中缀表达式&…

【微命令】git 如何修改某个分支的名字(git branch -m newbranch)

简要信息,快速记录 命令 # 切换到某个需要修改的分支 git checkout oldbranch# 修改分支名字 git branch -m newbranch假设作为git设计者,要用来修改branch的命令,那么就是 git branch作为前缀,然后进一步修改的命令是branch相关…

稀碎从零算法笔记Day40-LeetCode:加油站

题型:贪心、模拟、数组 链接:134. 加油站 - 力扣(LeetCode) 来源:LeetCode 题目描述 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第…

2024年第十七届 认证杯 网络挑战赛 (C题)| 云中的海盐 | 辐射传输方程 Stefan-Boltzmann分析 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 让我们来看看认证杯 网络挑战赛 (C题)&#xff01…

Linux的学习之路:5、粘滞位与vim

摘要 这里主要是把上章没说完的权限的粘滞位说一下,然后就是vim的一些操作。 目录 摘要 一、粘滞位 二、权限总结 三、vim的基本概念 四、vim的基本操作 五、vim正常模式命令集 1、插入模式 2、从插入模式切换为命令模式 3、移动光标 4、删除文字 5、复…

MMYOLO调试RTMDet--小数据集split_ss_dota_200

背景 用MMYOLO调试旋转目标检测时需要用到dota数据集,根据MMYOLO的官方教程,dota数据集经过处理后变为split_ss_dota,但是该数据集还是很大,对于一些配置比较低的机器要调试比较麻烦,所以这里针对该数据集&#xff0c…