lq920320 / blogs

Blogs of personal.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2019/01/26--我发布了一个毫无意义的npm包

lq920320 opened this issue · comments

我发布了一个毫无意义的npm包

最近几个月一直在做前端的项目,然后在安装依赖的时候便打出命令 npm install xxx 来进行局部或者全局安装就行了,甚至在包含package.json文件的项目中执行 npm ci 就自动引入依赖了。嗯,我就在想,我可以发布npm包吗?接着,便进行了一次毫无意义的尝试,仅作记录。

前期调研

那么首先就是,怎么发布一个npm包呢?

步骤如下:

  • 第一步,注册一个npm账号,免费的
  • 第二步,新建一个项目,并通过 npm init 进行项目的初始化配置
  • 第三步,进入项目目录,执行 npm publish 便可以发布到 npm 公共仓库进行下载了(网站地址:https://www.npmjs.com/)
    注:在操作过程中可能遇到各种各样的小问题,不过大致看一眼报错日志就能解决了,简单步骤就这三步。
    下面具体介绍。

创建一个无意义的项目

既然没有什么意义,那趣味性一定要有,于是便参考了github上的一个项目:five ,我创建一个项目 two

接着便是完善这个项目了。除此之外,我搜了一下npm,发现“two”这个名字已经有人取了,便不得不再想一个,否则发布便会失败,然后就加了一个前缀“monkey-two”。

初始化项目

  • 创建项目目录 ./monkey-two
  • 进入项目目录,执行 npm init
    _20190126204230
    然后一步步执行就行了,最终会自动帮我们生成一个package.json文件,敲入yes或者直接回车就行了。
    _20190126204648

完善项目

  • 创建index.js之类的文件,在此文件中引入 two.js ,然后所有的主要函数和实现都在此文件中完成
  • 编写测试,一个优(wu)秀(liao)的项目怎么能没有测试呢?添加 test.js 文件,本项目的测试是用 mocha 来进行的
  • 编写README.md,这个文件主要是说明该项目的使用方法以及适用场景,而且特别特别重要的是,一定要吸睛,这一点我还没做好,今后会完善的,比如加上各种标签、增加色彩和图片什么的

这项目能干啥

Basic 2(基础数字2)
two(); // 2
two.valueOf(); // 2
Addition(加法)
two() + two(); // 2 + 2 = 4
two.add(1); // 1 + 2 = 3
two.add(2); // 2 + 2 = 4
two.add(3); // 3 + 2 = 5
two.add(10, 5); // 10 + 5 = 15
Subtraction(减法)
two() - two(); // 2 - 2 = 0
two.subtract(1); // 1 - 2 = -1
two.subtract(2); // 2 - 2 = 0
two.subtract(3); // 3 - 2 = 1
two.subtract(10, 5); // 10 - 5 = 5
Multiplication(乘法)
two() * two(); // 2 * 2 = 4
two.times(1); // 1 * 2 = 2
two.times(2); // 2 * 2 = 4
two.times(3); // 3 * 2 = 6
two.times(10, 5); // 10 * 5 = 50
Multiplication(除法)
two() / two(); // 2 / 2 = 1
two.divide(1); // 1 / 2 = 0.5
two.divide(2); // 2 / 2 = 1
two.divide(3); // 3 / 2 = 1.5
two.divide(10, 5); // 10 / 5 = 2
Power(幂运算)
two.power(); // 2
two.power(3); // 8
two.power(10); // 1024
Square(开平方)
two.square(); // 1
two.square(4); // 2
two.square(1024); // 32
Different radices(基数)
two.base(2); // 10
two.base(8); // 2
two.base(10); // 2
two.base(16); // 2
# the base is 2(二进制)
two.baseOf(); // 01  # default 1
two.baseOf(10); // 1010
Different sorts of 2(花式输出2)
two.upHigh(); // ²
two.downLow(); // ₂
two.roman(); // Ⅱ
two.chinese(); // 二
two.chinese("pinyin"); // èr
two.chinese("financial"); // 贰
two.japanese(); // 二
two.english(); // two
two.upperCase(); // TWO
two.repeat();  // 2
two.repeat(5); // 22222
two.repeat(10); // 2222222222
Date(日期相关)
two.dayOfWeek(); // 周二
two.dayOfWeek("EN"); // Monday
two.monthOfYear(); // 二月
two.monthOfYear("EN"); // February
Unicode emoji(emoji表情)
two.peace(); // ✌️
two.victory(); // ✌️
two.eyes(); // 👀
two.oclock(); // 🕑
two.oclockStatus(); // 🛌 # default 2:00 am, you should be sleeping in the bed.(默认是凌晨两点,你应该在睡觉。)
two.oclockStatus("PM"); // 👨‍💻 # 2:00 pm, you shoulding be coding.(传参表示下午两点,你居然不在写代码?!)
two.oclockStatus("pm"); // 👨‍💻
Assert(判断)
two.isTwo();  // true
two.isTwo(2); // true
two.isTwo(3); // false
Compare(比较)
two.bigger(1, 2); // 2
two.smaller(1, 2); // 1

发布项目

完成项目的基本功能之后,就可以发布了,这时候执行:

npm publish

在这时,可能会报错,因为还没登录npm账户,那就执行 npm login 输入用户名密码即可:
image
最后,发布就行了,成功的截图如下:
_20190126211009

验证

验证的方法也很简单:

方法一:通过npm install 命令来检验是否可以安装
方法二:直接去npm网站进行搜索,记得要用全名搜索,并且要等一段时间再去搜,才能搜到。

接着,使用RunKit验证就行了:
_20190126211532

项目地址

https://github.com/monkey-play/two