0%

创建你的第一个 npm 包

创建你的第一个 npm 包

创建 npm 包可能会让人感到非常吃力,但实际上它非常简单。

文件夹结构

  • is-primer
    • index.js
    • package.json
  • test
    • index.js
    • package.json

创建包

首先,在你的项目文件夹中创建一个名为 is-primer 的文件夹。这将是我们放置 npm 包代码的位置。
我们需要创建一个 package.json 文件来描述我们的包。在终端中,进入 package 文件夹并运行以下命令:

1
npm init -y

现在,我们已经创建了 package.json 文件,它将包含我们的包信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// package.json
{
"name": "is-primer",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}

然后,在 is-primer 文件夹中创建一个名为 index.js 的文件。这个文件将包含我们的包代码。

index.js 文件中,创建一个函数 isPrimer,它将接收一个数字,判断该数字是否为素数。

1
2
3
4
5
6
7
8
9
10
11
12
// is-primer/index.js
const isPrimer = n => {
for (let i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false
}
}
return true
}

module.exports = isPrimer

我们把isPrimer函数作为默认导出

测试包

在发布包之前,我们应该先进行本地测试。

在项目根目录下创建一个名为 test 的文件夹,
运行以下命令:

1
2
npm init -y
npm link ../is-primer # 这是在test目录下创建一个指向is-primer文件夹的软链接,这样我们可以使用is-primer包中导出的函数

然后在test下创建index.js并将以下代码放入其中:

1
2
3
4
5
// test/index.js
const isPrimer = require('is-primer');
for(let i = 1; i < 100; i++){
console.log(i, isPrimer(i))
}

现在,我们可以在终端中运行 node index.js 来测试我们的包。你应该能够看到输出结果,表示我们的包在本地测试中正常工作。

发布包

当我们完成本地测试后,可以将包发布到 npm 上,让其他人可以使用它。

在终端中,进入 is-primer 文件夹并运行以下命令:

1
npm login

输入你的 npm 账户凭据,登录到你的账户。

然后,运行以下命令来发布你的包:

1
npm publish

恭喜!你的包已经成功发布到 npm 上了。

现在,其他人可以使用以下命令来安装你的包:

1
npm install is-primer

这就是创建自己的第一个 npm 包的全部过程。