我刚刚创建了我的第一个 NPM 包。虽然不多,但这是一份真心实意的劳动。我向大家介绍我自己的第一个 NPM 包,叫做 linear-array 。就是这样。

2025-06-09

我刚刚创建了我的第一个 NPM 包。虽然不多,但很真诚。

我向你介绍我自己的第一个发布的 NPM 包,名为linear-array

就是这样。

昨天我了解到这些 NPM 包存在:

我必须承认,这既让我感到惊讶又让我感到好笑。

我认为一般的 NPM 包比这个更复杂一些:

// is-odd

return (n % 2) === 1;
Enter fullscreen mode Exit fullscreen mode

或者这个:

// is-number

if (typeof num === 'number') {
    return num - num === 0;
  }
Enter fullscreen mode Exit fullscreen mode

但最让我惊讶的是,开发人员实际上将这些包用作他们项目的依赖项。

is-odd每周下载量达 50 万次!

而让整个事情变得更加有趣的是,这个包有它自己的依赖项,它就是上面提到的is-number包。

因此is-odd的最终大小降至 cca.6.5kB。

我不明白为什么这个包,或者它的姐妹,如此受欢迎,因为用 vanilla JS 很容易“实现”它们提供的功能(只需要一行代码)。

但请不要误会,我并不是想表达消极情绪。

谁知道这些包为什么存在以及为什么它们变得如此受欢迎。

例如,其中一个原因可能是作者最初创建is-odd是因为他正在练习如何将包发布到 NPM。

但这只是目前的猜测,与本文的其余部分和故事的寓意无关:)

在进入文章主题之前,我只是想解释一下我的动机。

我向你介绍我自己的第一个发布的 NPM 包,名为linear-array

这里是:https://www.npmjs.com/package/linear-array

需要说明的是,我完全知道这个包实际上毫无用处。

但我还是决定创建它,因为前面已经提到的原因,更重要的是,因为我想了解 NPM 包是如何发布的。

它的作用:

返回一个线性增加的数字数组,从 0 开始直到给定值 - 1(无偏移),或从 1 到值本身(有偏移)。

如何使用:

import linearArray from 'linear-array'; // web

OR

const linearArray = require('linear-array'); // server


console.log(linearArray(1)); //=> [0]
console.log(linearArray(3)); //=> [0,1,2]
console.log(linearArray(5)); //=> [0,1,2,3,4]

console.log(linearArray(1, true)); //=> [1]
console.log(linearArray(3, true)); //=> [1,2,3]
console.log(linearArray(5, true)); //=> [1,2,3,4,5]
Enter fullscreen mode Exit fullscreen mode

事实证明,这一切其实并不是很复杂。

诚实工作表情包

以下是有关如何执行此操作的简短工作流程:

  • 想一个你可以创建的包和一个唯一的名称(检查 NPM 存储库,确保该名称尚未被使用)
  • 创建与未来 NPM 包同名的本地文件夹
  • 添加必要的文件(index.js、README、LICENSE 和 test.js(如果需要))并用 markdown 和代码填充
  • git init在你的终端中运行
  • 推送到Github repo,名称与本地项目名称相同
  • npm init在你的终端中运行
  • 在https://www.npmjs.com/上注册您的个人资料
  • npm login在你的终端中运行
  • npm publish在你的终端中运行

如果您在某个地方遇到困难,请查看linear-array的项目 repo。

就是这样。

感谢您阅读这篇文章直到最后。

这个故事的寓意是,如果你认为你的 NPM 包想法很糟糕,那也没关系。

真正重要的是学习的过程。

因为尝试这样的新事物很有趣。

聚苯乙烯

如果您确实发现我的软件包有用并决定将其安装在您的项目中,我恳请您重新考虑并且不要真正这样做。😂

只需直接从项目 repo 页面上的 index.js 文件复制代码即可。

干杯!

鏂囩珷鏉ユ簮锛�https://dev.to/ispoljari/i-just-created-my-first-npm-package-it-ain-t-much-but-it-s-honest-work-5h94
PREV
使用 Markdown 提高你的工作效率。Boost Note for Teams
NEXT
如何在一分钟内模拟 API