我刚刚创建了我的第一个 NPM 包。虽然不多,但很真诚。
我向你介绍我自己的第一个发布的 NPM 包,名为linear-array
就是这样。
昨天我了解到这些 NPM 包存在:
- https://www.npmjs.com/package/is-odd
- https://www.npmjs.com/package/is-even
- https://www.npmjs.com/package/is-number
我必须承认,这既让我感到惊讶又让我感到好笑。
我认为一般的 NPM 包比这个更复杂一些:
// is-odd
return (n % 2) === 1;
或者这个:
// is-number
if (typeof num === 'number') {
return num - num === 0;
}
但最让我惊讶的是,开发人员实际上将这些包用作他们项目的依赖项。
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]
事实证明,这一切其实并不是很复杂。
以下是有关如何执行此操作的简短工作流程:
- 想一个你可以创建的包和一个唯一的名称(检查 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