搜索
首页web前端js教程如何将包发布到 npm:分步指南

在 NPM(Node 包管理器)上发布包不仅是与其他开发人员分享您的工作的一种方式,也是在开发社区中脱颖而出的一种方式。想象一下,创建一个可重用的解决方案,可以集成到世界各地的各种项目中,从而节省其他程序员的时间和精力。

在本文中,您将逐步学习如何在 NPM 上配置、发布和维护自己的包,使您的贡献易于访问并提高您作为开发人员的知名度。

先决条件

开始之前,请确保您拥有:

  • 已安装 NPM。您可以从nodejs.org下载它或使用NVM(Node版本管理器)。
  • 在 npmjs.com 上创建的帐户

在终端中运行以下命令,验证 Node.js 和 NPM 是否安装成功。

node -v
npm -v

如果安装正确,终端会显示各个版本。
结果将类似于以下内容:

$ v20.18.0 # node -v
$ 10.8.2 # npm -v

配置项目

首先使用您想要的包名称创建一个文件夹。就我而言,我选择了“string-reverser-jm”。

mkdir string-reverser-jm # cria a pasta via terminal
cd string-reverser-jm # acessa a pasta via terminal

初始化 NPM:

npm init

执行上述命令时,终端会问你几个问题来创建 package.json 文件。
以下是我们需要填写的每个项目的解释。

  • 名称:包的唯一标识符。
  • 版本:使用语义版本控制来指示更改。
  • 描述:对该包功能的简要说明。
  • main:入口点文件,例如index.js。
  • 关键字:用于分类的关键字,以便其他开发者更容易找到包。
  • 作者:添加相关作者详细信息。
  • 许可证:许可证定义了其他人如何使用、修改和分发代码。最常见的许可证是 MIT,它是宽松的,允许很大的使用自由,只要提供原始版权声明即可。

如果您完成了问题并且 NPM 创建了没有任何此信息的文件,请在编辑器中打开创建的文件并添加缺少的内容。

示例:

{
  "name": "string-reverser-jm",
  "version": "1.0.0",
  "description": "A simple utility to reverse strings, useful for demonstrations and small projects.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"No test specified\" && exit 1"
  },
  "author": "Juliana Macedo <contact> (https://www.starcoders.info)",
  "keywords": [
    "string",
    "reverse",
    "utility"
  ],
  "license": "MIT"
}

</contact>

编写代码

在项目根目录中创建index.js文件。

function reverseString(str) {
  if (typeof str !== "string") {
    throw new TypeError("Expected a string as input");
  }
  return str.split("").reverse().join("");
}

module.exports = reverseString;

测试包

为了在发布之前测试包,我们将使用 npm link 命令

在包目录下,运行命令:

npm link

在要测试包的项目中,运行命令:

node -v
npm -v

在测试项目中导入并使用该包以确保其正常工作:

$ v20.18.0 # node -v
$ 10.8.2 # npm -v

要删除创建的链接,只需在测试项目目录中运行命令 npm unlink string-reverser-jm ,然后在包目录中运行 npm unlink 即可。

准备发布包

首先,为包创建一个 Git 存储库并将其链接到 NPM。这通过提供源代码来提高透明度和信任,促进协作和社区贡献,并通过 CI/CD 实现自动化,以实现更高效的管理和维护。

要链接到 NPM,请复制存储库的 https 地址并将其添加到 package.json:

mkdir string-reverser-jm # cria a pasta via terminal
cd string-reverser-jm # acessa a pasta via terminal
  • .gitignore:创建 .gitignore 文件以从版本控制中排除文件夹和文件,例如 node_modules 和 .env。
  • .npmignore:创建 .npmignore 文件以指定哪些文件和文件夹不应包含在 NPM 包中。
  • README.md:创建包含有关包的信息的文件。

发布包

使用您的登录详细信息登录 NPM:

npm init

运行以下命令来发布包:

{
  "name": "string-reverser-jm",
  "version": "1.0.0",
  "description": "A simple utility to reverse strings, useful for demonstrations and small projects.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"No test specified\" && exit 1"
  },
  "author": "Juliana Macedo <contact> (https://www.starcoders.info)",
  "keywords": [
    "string",
    "reverse",
    "utility"
  ],
  "license": "MIT"
}

</contact>

好的,该软件包很快就会在 NPM 注册表中可用!
https://www.npmjs.com/package/string-reverser-jm

更新包

进行更新或错误修复时,请使用以下命令之一根据语义版本控制增加 package.json 中的版本号:

function reverseString(str) {
  if (typeof str !== "string") {
    throw new TypeError("Expected a string as input");
  }
  return str.split("").reverse().join("");
}

module.exports = reverseString;

然后发布更新版本:

npm link

常见问题:

  • 包名称已被占用:如果由于已存在同名包而导致发布失败,请选择另一个尚未被占用的名称。
  • 身份验证错误:确保您已登录并拥有发布所需的所有权限。
  • 版本冲突:如果您尝试在不更新版本号的情况下发布,NPM 将拒绝您的帖子。使用npm version来增加版本。

Como publicar um pacote no npm: um guia passo a passo

Como publicar um pacote no npm: um guia passo a passo

以上是如何将包发布到 npm:分步指南的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JavaScript数据类型:浏览器和nodejs之间是否有区别?JavaScript数据类型:浏览器和nodejs之间是否有区别?May 14, 2025 am 12:15 AM

JavaScript核心数据类型在浏览器和Node.js中一致,但处理方式和额外类型有所不同。1)全局对象在浏览器中为window,在Node.js中为global。2)Node.js独有Buffer对象,用于处理二进制数据。3)性能和时间处理在两者间也有差异,需根据环境调整代码。

JavaScript评论:使用//和 / * * / * / * /JavaScript评论:使用//和 / * * / * / * /May 13, 2025 pm 03:49 PM

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python vs. JavaScript:开发人员的比较分析Python vs. JavaScript:开发人员的比较分析May 09, 2025 am 12:22 AM

Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

Python vs. JavaScript:选择合适的工具Python vs. JavaScript:选择合适的工具May 08, 2025 am 12:10 AM

选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

Python和JavaScript:了解每个的优势Python和JavaScript:了解每个的优势May 06, 2025 am 12:15 AM

Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

JavaScript的核心:它是在C还是C上构建的?JavaScript的核心:它是在C还是C上构建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript应用程序:从前端到后端JavaScript应用程序:从前端到后端May 04, 2025 am 12:12 AM

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

Python vs. JavaScript:您应该学到哪种语言?Python vs. JavaScript:您应该学到哪种语言?May 03, 2025 am 12:10 AM

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具