创建通用JS公共模块并发布至npm

news2024/12/25 23:50:26

title: 创建通用JS公共模块并发布至npm tags:

  • UMD
  • rollup
  • verdaccio
  • npm categories:
  • 模块化

概要内容

  • 创建:JS公共模块
  • 打包:使用rollup 打包公共模块
  • 发布:js公共模块至verdaccio平台
  • 发布:js公共模块至npm平台

如何创建JS公共模块

由于代码有点多就不贴代码了,直接去代码仓库看吧 传输门


rollup

  • 简介:

    Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序。

  • 使用起因:

    公共相关的js文件想弄成单独的一个模块,方便后续开发使用,而不是不停的copy 和paste,所以就去了解怎么样把js公共相关js 打包成一个模块。

  • 安装
    pnpm install -g rollup
  • 创建配置文件
    // rollup.config.js
    import json from 'rollup-plugin-json';
    import babel from 'rollup-plugin-babel';
    import {uglify} from 'rollup-plugin-uglify';
    import {version} from '../package.json';
    import multiEntry from "rollup-plugin-multi-entry";
    import {terser} from "rollup-plugin-terser";

    export default {
        input: 'src/*.js',
        output: {
            /*输出公共库路径*/
            file: 'lib/index.js',
            /*配置:UMD 通用定义模块,支持前端端跨平台模块化*/
            format: 'umd',
            name: 'JSCommonUtils',
            /*压缩和混淆js*/
            plugins: [terser(), uglify()],
            /*JS前缀: 添加库相关信息*/
            banner: '/* JSCommonUtils version ' + version + ' */',
            /*JS尾部: 添加个人相关信息*/
            footer: '/* follow me on github aa4790139 */'
        },
        plugins: [
            json(),
            babel({
                /*过滤node_modules编译*/
                exclude: 'node_modules/**'
            }),
            /*允许多输入源*/
            multiEntry()
        ],
    };


verdaccio

  • 简介: 开源轻量的npm私服包管理平台
  • 使用起因:

    创建好自己的js公共模块时,我们需要在浏览器和Node.js 环境中测试,有了verdaccio 就非常方便我们测试了。而不是去不停npm本地公共模块搞得非常蛋疼,而且很容易出问题,所以为了简单和方便我们使用verdaccio 搞个私有仓库,方便我们模拟安装使用。

  • 安装
    pnpm install -g verdaccio
  • 启动
    verdaccio

发布至verdaccio平台

  • 常用命令
//1. 添加用户
npm adduser --registry http://localhost:4873
//2. 发布至私有仓库位置
npm publish --registry http://localhost:4873
// 撤回发布刚发布包
npm unpublish --force --registry http://localhost:4873 
// 撤回发布的指定包
npm unpublish package_name  --force --registry http://localhost:4873
  • 效果图 alt

发布至npm平台

  • 创建.npmignore 文件,过滤掉无需上传的文件和目录
node_modules/*
src/
build/
.babelrc
.gitignore
package-lock.json
pnpm-lock.yaml
!node_modules/crc32
!node_modules/deflate-js

提示: .npmignore文件内容,需要忽略的文件和目录写前面,需要排除忽略的文件或目录前加!写后面

  • 效果图 alt

参考文献:
  • verdaccio 官网
  • verdaccio 搭建配置
  • rollup.js 中文文档
  • rollup 官网打包实践
  • Rollup.js 实战学习笔记
  • .npmignore: ignore whole folder except given file types

以上: 如发现有问题,欢迎留言指出,我及时更正

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何开发一个大模型应用

随着人工智能技术的快速发展,大模型应用已成为许多领域的核心竞争力。大模型应用通常指的是基于大规模数据集训练得到的深度学习模型,具有强大的特征表示能力和泛化性能。本文将详细介绍如何开发一个大模型应用,包括模型设计、数据准备、训练…

Synergy键鼠跨屏幕同步

小记 Synergy 在多台计算机之间使用单个键盘和鼠标,使用一台计算机的键盘、鼠标或触控板来控制附近的计算机,并在它们之间无缝工作 支持Windows Mac Linux 和树莓派,解放桌面空间,减少操作复杂性,多屏操作神器没错了 …

PostgreSQL 中如何处理数据的并发插入和唯一约束的冲突解决?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何处理数据的并发插入和唯一约束的冲突解决一、并发插入和唯一约束的基本概念&#xf…

对于GPT-5在一年半后发布的期待!

首先,如果GPT-5真如OpenAI首席技术官米拉穆拉蒂(Mira Murati)在采访中所透露的那样,在一年半后发布,并在某些领域达到博士级的智能,这无疑将是一个令人振奋的消息。这一预测不仅反映了AI技术的快速发展&…

PostgreSQL 中如何处理数据的并发读写和事务隔离级别选择?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何处理数据的并发读写和事务隔离级别选择一、并发读写的挑战(一&#xff0…

SpringBoot之健康监控(Actuator)

1,基本介绍 Spring Actuator 是 Spring Boot 提供的一个扩展模块,用于监控和管理应用程序的生产环境。它通过 HTTP 端点暴露了大量的监控和管理功能,使得开发者可以在运行时查看应用程序的运行状况、配置信息、性能指标等。 主要功能&#…

重生奇迹mu游戏中的防御成功率

在重生奇迹游戏中,玩家通常除了追求高防御能力外,还会关注一种特殊属性——防御成功率。防御成功率的提高可以帮助玩家闪避攻击,并展现出无敌的效果,因此是防御技能的关键表现之一。 在游戏中,角色的防御成功率和敏捷属…

Zymo试剂盒产品目录,你了解过吗?

在加利福尼亚州奥兰治市的一个小车库里诞生,到今天的行业领导者,Zymo Research 的愿景是在生物医学领域产生积极影响,并为人类的更大福祉做出贡献。这一愿景涉及 Zymo Research的各个方面,并自 1994 年以来一直指导着公司的发展、…

Java | Leetcode Java题解之第231题2的幂

题目&#xff1a; 题解&#xff1a; class Solution {static final int BIG 1 << 30;public boolean isPowerOfTwo(int n) {return n > 0 && BIG % n 0;} }

高校节能环保建设

全球能源危机和环境保护问题日益严重。我国高等院校数量多&#xff0c;在校师生人数多。高等院校作为能耗消耗主体及其在校师生作为节能环保理念的重要传播群体&#xff0c;高校节能环保校园建设显得尤为重要。本文就节能环保校园建设中节能、节水和环保三个方面进行了思考&…

可视化作品集(13):智慧交通方向的这组大屏,绝对亮眼。

本期分享智慧交通方向的可视化化大屏&#xff0c;本期的视觉效果绝对亮眼。

ysoserial代码分析-反射

前言&#xff1a; ysoserial作为优秀的反序列化攻击工具&#xff0c;其提供的攻击调用链也是很简单好用&#xff0c;但是一直没有分析过其代码逻辑&#xff0c;最近有空正好分析了一下&#xff0c;对反序列化理解有更好的帮助 代码分析&#xff1a; 其代码中最重要的两个是反…

虚拟机 VMware Workstation- 安装详细步骤

目录 虚拟化概念VMware Workstation 简介一、安装准备1. 安装环境2. 软件下载 二、常见问题1. 虚拟机的【默认位置】会在C盘&#xff0c;盘符内存不够的建议改为D盘或别的盘符2. 验证许可证是否密钥是否成功。进入虚拟机点击【帮助】下的关于VMware Workstation(A)可以查看验证…

Android Stuido Gradle build编译报错原因排查

事情是这样的&#xff0c;在更新了支付宝sdk的aar文件后&#xff0c;运行项目&#xff0c;报错了。如下图&#xff1a; 但是没有给出更多错误信息。想尝试通过gradlew compileDebug --stacktrace来输出更多build时的信息&#xff0c;但没有得到更多有效信息。 接下来&#xff…

AI+ 资源数据分析运营助手

在数字化浪潮席卷全球的今天&#xff0c;资源管理&#xff0c;作为企业运营的中枢神经&#xff0c;正迎来一场由人工智能&#xff08;AI&#xff09;引领的智慧变革。从资源的智能分配到问题的瞬间解决&#xff0c;AI 正在重塑资源管理的每一个角落&#xff0c;让效率与精准成为…

13 IP层协议-网际控制报文协议ICMP

计算机网络资料下载&#xff1a;CSDNhttps://mp.csdn.net/mp_blog/creation/editor/140148186 为了更有效的转发IP数据报和提高交付成果的机会&#xff0c;在网际层使用了网际控制报文协议ICMP。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP不是高层协议数…

十大护眼落地灯品牌哪个牌子好一点?十大落地灯品牌排行榜分享

十大护眼落地灯哪个牌子好一点&#xff1f;现在的孩子从早上睁开眼就开始学习&#xff0c;有时候还需要使用到电子产品辅助学习&#xff0c;长时间对着电子产品以及在不良的光线环境下&#xff0c;不仅会对孩子眼睛造成持续的刺激&#xff0c;损害我们的眼睛视力&#xff0c;加…

path+HTTP协议+IP+端口(nodejs)

一.path //导入 fs const fs require(fs); const path require(path); //写入文件 // fs.writeFileSync(__dirname /index.html, love); // console.log(__dirname /index.html);//resolve 解决 // console.log(path.resolve(__dirname, ./index.html)); // console.log(p…

Centos安装Nginx(手把手教学两种安装方式)

前言 在CentOS上安装Nginx&#xff0c;通常可以通过两种方式&#xff1a;使用YUM包管理器安装&#xff08;适用于官方仓库或EPEL仓库中包含的Nginx版本&#xff09;&#xff0c;或者从源代码编译安装&#xff08;适用于需要特定版本或自定义Nginx的情况&#xff09;。以下是两…

不要惊讶!就是这么6!最新发布,SD XL 虚幻引擎5光影高清模型

效果展示 提示词&#xff1a;1 sex girl,strapless,cleavage&#xff0c;glowing, solo, hood, red eyes, armor, looking at viewer, electricity, hood up, red background, gauntlets, glowing eyes, vambraces,(full_body:1.3)<lora:虚幻引擎5光影-XL_UE5-XL-V1【Unrea…