cosmos
Cosmos
search
blog Hello comment
{ "articleTitle": "webpack学习:npm包", "date": "2021-7-20 16:32:49", "tags": [ "webpack", "模块", "打包", "npm" ], "categories": "webpack", "timestamp": 1626798769000, "readingTime": 5, "outline": " 1、什么是npmnpm是javascript著名的**包管理工具**,是**前端模块化**下的一个" }
readingTime: 5min

1、什么是npm

npm是javascript著名的包管理工具,是前端模块化下的一个标志性产物。简单地地说,就是通过npm下载模块,复用已有的代码,提高工作效率。和移动端开发中,iOS使用的Cocoapods,Android使用的maven有异曲同工之妙。

2、发布npm包

1、使用npm init 初始化项目。

会自动创建package.json文件,内容如下:

默认字段简介:
name:发布的包名,默认是上级文件夹名。不得与现在npm中的包名重复。包名不能有大写字母/空格/下滑线!
version:你这个包的版本,默认是1.0.0。对于npm包的版本号有着一系列的规则,模块的版本号采用X.Y.Z的格式,具体体现为:
  1、修复bug,小改动,增加z。
  2、增加新特性,可向后兼容,增加y
  3、有很大的改动,无法向下兼容,增加x
description:项目简介
main:入口文件,默认是Index.js,可以修改成自己的文件 
scripts:包含各种脚本执行命令
test:测试命令。
author:写自己的账号名
license:这个直接回车,开源文件协议吧,也可以是MIT,看需要吧。

2、确认用户

本机第一次发包:执行npm adduser,非第一次发包:执行npm login

执行后输入注册的npm账号、密码和邮箱

3、发布

npm publish

4、查询发布的包

到npm官网全局搜索即可

3、修改版本号

在命令行输入npm version ?就能看到可以使用的命令

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]

major:主版本号

minor:次版本号

patch:补丁号

premajor:预备主版本

prepatch:预备次版本

prerelease:预发布版本

常用npm version patch即修改z。

具体的版本号x.y.z:

version:你这个包的版本,默认是1.0.0。对于npm包的版本号有着一系列的规则,模块的版本号采用X.Y.Z的格式,具体体现为:
  1、修复bug,小改动,增加z。
  2、增加新特性,可向后兼容,增加y
  3、有很大的改动,无法向下兼容,增加x

依赖包的版本问题

实例 说明
~1.2.3 主版本+次要版本+补丁版本;1.2.3 <= version < 1.3.0;
~1.2 主版本+次要版本;1.2.0 <= version < 1.3.0
~1 主版本;1.0.0 <= version < 2.0.0
符号 实例 版本范围 说明
1.0.0 1.0.0 锁定1.0.0版本,必须这个版本。
^会匹配最新的大版本依赖包 ^1.2.3、^0.2.3 >=1.2.3 <2.0.0、>=0.2.3 <0.3.0 表示安装1.x.x的最新版本(不低于1.2.3,包括1.3.0),但是不安装2.x.x,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。(主版本)
~会匹配最近的小版本依赖包 ~1.2.3 >=1.2.3 <1.3.0 表示安装1.2.x的最新版本(不低于1.2.3),但是不安装1.3.x,也就是说安装时不改变大版本号和次要版本号。
>= >=2.1.0 >=2.1.0 大于等于2.1.0
<= <=2.0.0 <=2.0.0 小于等于2.0.0
laster 安装最新的版本
* >=0.0.0 任何版本
- 1.2.3 - 2.3.4 >=1.2.3 <=2.3.4

4、总结

简单来说,每次发布只需npm version patchnpm publish

Edit on Github