如何编写并发布您的第一个 NPM 包
介绍
各位开发者好!
本文将学习如何编写代码并发布你的第一个 NPM 包。
发布 NPM 包非常简单,在本教程中,我们将创建一个非常简单的包,只需几行代码即可。
什么是 NPM?
NPM 是Node Package Manager 的缩写,顾名思义它是一个包管理器,也是 JavaScript 运行环境 Node.js 的默认包管理器。
先决条件
- 系统中已安装 Node.js 和 npm - 您可以从此处安装 Node.js 和 npm(如果尚未安装)
- JavaScript 的基础知识- 我们在这里制作的包很简单,因此您不需要非常高的 JavaScript 知识。
- 基本终端命令- 我将使用一些基本终端命令,但我将在文章中解释我将使用的 npm 和 node 命令。
- 代码编辑器- 在本教程中,我将使用 VS Code,但您可以使用任何您选择的编辑器。
让我们开始吧
步骤 1:在https://www.npmjs.com/signup上创建帐户
第 2 步:通过你的 npm 帐户登录到 CLI
为此,只需在终端中输入此命令
$ npm login
并输入以下详细信息: 要检查您是否已成功登录,请键入以下命令,它将打印您的用户名:
$ npm whoami
步骤 3:设置目录
您可以通过在终端/CLI 上输入以下命令来完成此任务:
$ mkdir folder_name
$ cd path/to/folder
-
mkdir
- mkdir 命令用于直接从终端创建目录或文件夹。 -
cd
- cd 命令用于改变终端中的当前工作目录。
步骤4:Package.json
要初始化 package.json 文件,请在 CLI 中输入此命令
$ npm init
然后回答所问的问题,如果愿意,可以点击 Enter 跳过任何问题。
什么是 package.json?
Package.json 是一个必要的文件,它包含有关项目的信息,
例如package name
、等version
。author's name
第五步:开始编码
现在我们有了 package.json 文件,可以开始编写代码了。
创建一个 index.js 文件,并将以下代码写入其中。
const object = {
add: function addTwoNumbers(a,b){
return a+b;
}
}
module.exports = object;
代码解释
-
const 对象
object
-导出以供他人使用的对象。 -
函数 addTwoNumbers() - 这是存储在对象中可供其他人使用的函数,它被标记为“add”,它只是返回两个数字的总和
a
。b
-
module.exports
object
-然后通过声明来导出对象。
第六步:发布时间
要发布新制作的 npm 包,请转到终端并输入此命令
$ npm publish
如果您收到此消息:
那么恭喜你!你的 NPM 包已成功发布,任何人都可以使用了 :)
此包的 Github 仓库链接:https://github.com/HarshSinha17/maths-script
测试包
现在我们已经制作了 NPM 包,我们将尝试一下,要测试包,请按照以下步骤操作:
创建一个新目录并进入该目录
现在可以通过终端使用以下命令再次完成此操作
$ mkdir folder_name
$ cd path/to/folder
初始化 package.json
在终端上输入此命令,但这次使用-y
标志,这样我们不必回答任何问题,并且会创建一个默认的 package.json 文件。
$ npm init -y
安装软件包
要安装包,请输入以下命令
$ npm install maths-script
(这里maths-script
是包的名称)
现在必须在目录中创建一个名为的文件夹node_modules
和一个名为的文件。package-lock.json
让我们编码
创建一个名为的文件app.js
并将此代码粘贴到文件中
const maths = require('maths-script');
var a = maths.add(1, 2);
console.log(a);
代码解释 -
-
代码非常简单,首先我们将包的输出存储在一个常量中
maths
。 -
add
然后我们使用NPM 包的函数将两个数字 1 和 2 相加,并将其存储在变量中a
,然后将 var 打印a
到控制台。
运行文件
要运行该文件,请在终端中输入此命令
$ node app.js
(app.js 是我们的文件名)
然后您应该得到以下输出-
结论
因此,在本文中,我们学习了如何创建 NPM 包,希望本文对您有所帮助,如果您在制作自己的包时遇到任何问题,请在下面发表评论,以便我能够提供任何帮助
谢谢
(˵ ͡° ͜ʖ ͡°˵)