当前位置: 首页 > news >正文

创建并发布NPM模块

创建模块项目

$ mkdir my-npm-package
$ cd my-npm-package
$ npm init

添加模块代码

创建新文件 index.js,内容如下

function helloworld() {console.log('Hello World!');
}module.exports = helloworld;

测试模块

在模块目录(my-npm-package)下执行

$ cd my-npm-package
$ npm link

创建一个新的工程来使用上面创建的模块,比如测试模块叫 my-npm-package-test

$ mkdir my-npm-package-test
$ cd my-npm-package-test
$ npm init

在 my-npm-package-test 工程中使用 my-npm-package 模块

$ cd my-npm-package-test
$ npm link my-npm-package 

此时会在 my-npm-package-test 工程中创建一个软链接,指向 my-npm-package 模块的安装路径。

创建测试代码,比如创建 test.js 文件,内容如下

const helloworld = require('my-npm-package');helloworld();

运行测试

$ node test.js
Hello World!

由于是软链接,所以 my-npm-package 模块的代码修改后,不需要重新安装,直接在 my-npm-package-test 工程中重新运行测试即可。

发布NPM模块

在发布之前,需要先登录NPM账号,执行命令 npm login 即可。

$ npm login$ npm publish

模块发布后,就可以像使用其他NPM模块一样使用它了。(比如可以使用 npm install my-npm-package 来安装模块)

相关文章:

创建并发布NPM模块

创建模块项目 $ mkdir my-npm-package $ cd my-npm-package $ npm init添加模块代码 创建新文件 index.js,内容如下 function helloworld() {console.log(Hello World!); }module.exports helloworld;测试模块 在模块目录(my-npm-package&#xff0…...

20240807软考架构-------软考31-35答案解析

每日打卡题31-35答案 31、【2015年真题】 难度:一般 对于遗留系统的评价框架如下图所示,那么处于“高水平、低价值”区的遗留系统适合于采用的演化策略为 ( )。 A.淘汰B.继承C.改造D.集成 答案…...

简单实现二叉树(链表实现)

接着上一节。我们接着学习二叉树,学习使用链表建立二叉树时,最好把每个子程序的递归展开图,都画一下 前言 在学习二叉树的基本结构前,需先要创建一颗二叉树,然后才能学习其相关的基本操作,由于现在大家二…...

搭建 Web 群集Haproxy

案例概述 Haproxy 是目前比较流行的一种群集调度工具,同类群集调度工具有很多,如 LVS 和Nginx。相比较而言,LVS 性能最好,但是搭建相对复杂;Nginx 的upstream模块支持群集功能,但是对群集节点健康检查功能不强&#xf…...

PDF隐写思路

文章目录 使用工具技术细节小结 使用工具 工具:WPS、010Editor、WbStego 技术细节 步骤: 使用 WPS 查看文件,看是否能打开。 若不能打开则使用 010Editor 查看是否少了头文件等。 正常的 PDF 缺少头文件的 PDF 如果缺少头文件则使用 010…...

Pycharm 常用快捷键

快捷键作用描述Ctrl Space基本的代码自动完成Ctrl Shift Space选择代码自动完成Ctrl D复制当前行或符号Ctrl X剪切当前行或符号Ctrl C复制当前行或符号Ctrl V粘贴剪贴板内容Ctrl Y删除当前行Ctrl A全选当前文件内容Ctrl Z撤销操作Ctrl Shift Z重做操作Ctrl F查找文…...

android音频录音,(一)MediaRecorder简介

1.MediaRecorder概述 Android 多媒体框架支持捕获和编码各种常见的音频和视频格式,简要介绍音频录音。 2.MediaRecorder 源码路径:frameworks/base/media/java/android/media/MediaRecorder.java 源码接口: setAudioSource(MediaRecorde…...

autoX.js

一. 概述 AutoX.js 使用 JavaScript 作为脚本语言,目前使用 Rhino 1.7.13 作为脚本引擎,支持 ES5 与部分 ES6 特性。 下载地址: https://github.com/kkevsekk1/AutoX/releases 官方文档: AutoX.js 二. 用法 1. 首先在官网下…...

日本软文发稿:日本主流发稿媒体有哪些?

日本软文发稿:日本主流发稿媒体有哪些 在日本发布软文时,选择合适的主流媒体进行推广是非常关键的。以下是一些在日本广受欢迎、影响力较大的媒体推荐(排列不区分媒体排名顺序): 1. 朝日新闻 (Asahi Shimbun) 朝日新…...

翰德恩赋能中国邮政信息科技产品创新系列培训

为了增强中邮信科公司需求分析工程师的专业素养,提升其业务需求和业务价值的挖掘能力,进而设计并交付满足用户期望的产品,提升用户体验,运营管理部于2024年4月至6月成功举办了六期需求分析工程师能力提升系列培训。 本次系列培训…...

分享一个基于SpringBoot的英语学习平台Java英语学习任务打卡系统(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…...

Golang学习笔记

Go 语言学习笔记 1. 引言 Go 语言是由 Google 开发的一种静态类型、编译型的系统编程语言。它以简洁、高效和易于理解著称,并且支持并发编程。 2. 安装与环境配置 2.1 安装 Go 访问 Go 官方网站 下载适合你操作系统的安装包。安装完成后,设置 GOPAT…...

详解【多线程与并发】之线程

目录 1、线程 1.1线程Thread 1.2线程特点 1.3线程函数的原型 1.4Linux对于pthread的API的支持 1.4.1创建一个线程 1.4.2线程的退出 1.5资源分离 2、线程的同步/互斥机制 2.1线程互斥锁 2.1.1初始化线程互斥锁 2.2线程互斥锁的PV 操作 2.2.1P 操作(上锁…...

Linux安全与高级应用(四)深入探索MySQL数据库:安装、管理与安全实践

文章目录 标题:全面解析LAMP平台部署及应用第一部分:LAMP平台概述第二部分:准备工作第三部分:安装和配置PHP第四部分:配置Apache第五部分:测试LAMP平台第六部分:部署phpMyAdmin总结 &#x1f44…...

「iOS」自定义Modal转场——抽屉视图的实现

「iOS」自定义Modal转场——抽屉视图的实现 文章目录 「iOS」自定义Modal转场——抽屉视图的实现前言错误尝试自定义Modal转场实现流程自定义动画类UIPresentationController 成果展示参考文章 前言 在仿写网易云的过程之中,看到学长之前仿写时实现的抽屉视图&…...

【数据结构】顺序结构实现:特殊完全二叉树(堆)+堆排序

二叉树 一.二叉树的顺序结构二.堆的概念及结构三.堆的实现1.堆的结构2.堆的初始化、销毁、打印、判空3.堆中的值交换4.堆顶元素5.堆向上调整算法:实现小堆的插入6.堆向下调整算法:实现小堆的删除7.堆的创建1.堆向上调整算法:建堆建堆的时间复…...

【c++学习技术栈】

c学习技术栈 基础c基础组件中间件框架devops性能目标岗位 基础 计算机网络数据结构与算法操作系统linux c 基础组件 池式组件:线程池,内存池,db数据库连接池原子,无锁队列,ringbuffer,定时器。日志&…...

swift 自定义DatePacker

import Foundationenum AppDatePickerStyle {case KDatePickerDate //年月日case KDatePickerTime //年月日时分case kDatePickerMonth // 年月case KDatePickerSecond //秒}class AppDatePicker: UIView {private let jk_rootView UIApplication.shared.keyWindow!pri…...

MySQL事务,锁,MVCC总结

mysql中最重要的就是事务,其四大特性让我们维持了数据的平衡,一致。那么事务究竟是什么,与什么相关,他的使用步骤,以及使用过程中我们会遇到什么问题呢?下面我们一起学习交流! 1.MySQL的存储引擎&#xff…...

24/8/7 算法笔记 支持向量机回归问题天猫双十一

import numpy as np from sklearn.svm import SVR import matplotlib.pyplot as plt X np.linspace(0,2*np.pi,50).reshape(-1,1) y np.sin(X) plt.scatter(X,y) 建模 线性核函数 svr SVR(kernel linear) svr.fit(X,y.ravel())#变成一维y_ svr.predict(X) plt.scatter(…...

Agent Skill 按需加载:架构设计与实现解析

❝当 AI Agent 需要的知识越来越多,把一切都塞进 System Prompt 显然不是个好主意。本文从架构设计的角度出发,深入探讨一种优雅的解法——「Skill 渐进式加载机制」。❞一、问题:当 Agent 需要"十八般武艺"构建一个功能丰富的 AI …...

Rust跨平台开发指南:一次编写,到处运行

Rust跨平台开发指南:一次编写,到处运行 后端转 Rust 的萌新,ID "第一程序员"——名字大,人很菜(暂时)。正在跟所有权和生命周期死磕,日常记录 Rust 学习路上的踩坑经验和"啊哈时…...

CWW Morse Transmit:嵌入式摩尔斯电码生成与侧音实现

1. CWW Morse Transmit 库深度解析:嵌入式系统中的摩尔斯电码生成与音频侧音实现摩尔斯电码(Morse Code)作为人类历史上首个成熟的数字通信协议,自1837年塞缪尔莫尔斯发明以来,持续在军事、航海、业余无线电及应急通信…...

Docker镜像管理全攻略:从拉取到自定义镜像的完整流程

Docker镜像管理全攻略:从拉取到自定义镜像的完整流程 容器技术正在重塑现代软件交付的范式。想象一下这样的场景:开发团队在本地构建的应用,无需任何修改就能在生产环境以完全相同的方式运行;运维人员不再需要为不同服务器的依赖冲…...

jEasyUI 显示海量数据

jEasyUI 显示海量数据 引言 随着互联网技术的飞速发展,大数据时代已经到来。在众多前端框架中,jEasyUI以其简洁、易用、功能强大等特点,受到了广大开发者的喜爱。本文将深入探讨jEasyUI在显示海量数据方面的应用,帮助开发者更好地应对大数据挑战。 jEasyUI简介 jEasyUI…...

ngx_sort

1 定义 ngx_sort 函数 定义在 ./nginx-1.24.0/src/core/ngx_string.cvoid ngx_sort(void *base, size_t n, size_t size,ngx_int_t (*cmp)(const void *, const void *)) {u_char *p1, *p2, *p;p ngx_alloc(size, ngx_cycle->log);if (p NULL) {return;}for (p1 (u_char…...

SpringBoot+MinIO上传大文件报错?三步搞定Tomcat文件大小限制

SpringBootMinIO大文件上传报错深度解决方案 1. 问题现象与初步诊断 最近在开发一个基于SpringBoot和MinIO的文件存储系统时,遇到了一个令人困扰的问题:当尝试上传超过1MB的文件时,系统会抛出FileSizeLimitExceededException异常。错误日志明…...

新手怎么部署OpenClaw?2026年本地1分钟超速搭建OpenClaw及大模型百炼APIKey配置

新手怎么部署OpenClaw?2026年本地1分钟超速搭建OpenClaw及大模型百炼APIKey配置。OpenClaw(原Clawdbot)作为2026年主流的AI自动化助理平台,可通过阿里云轻量服务器实现724小时稳定运行,并快速接入钉钉,让AI…...

Poppins字体完整指南:免费获取专业级多语言排版解决方案

Poppins字体完整指南:免费获取专业级多语言排版解决方案 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins 你是否正在寻找一款既美观又支持多语言的免费字体来提升设计…...

-python-langchain框架(3-6-pdf文件分页加载 )

一、PDF分页加载的核心应用场景在实际开发中,分页加载并非多余操作,而是针对特定场景的最优解,尤其适合以下几种情况:大型PDF文件处理:单文件几十页、上百页,甚至更大,一次性加载全部内容会占用…...