npm相关内容

语义版本

版本规范:主版本号.次版本号.补丁版本号
  • 主版本号:仅当程序发生了重大变化时才会增长,如新增了重要功能、新增了大量的API、技术架构发生了重大变化
  • 次版本号:仅当程序发生了一些小变化时才会增长,如新增了一些小功能、新增了一些辅助型的API
  • 补丁版本号:仅当解决了一些 bug 或 进行了一些局部优化时更新,如修复了某个函数的 bug、提升了某个函数的运行效率
常见语义版本的书写方式
符号描述示例示例描述
>大于某个版本>1.2.1大于1.2.1版本
>=大于等于某个版本>=1.2.1大于等于1.2.1版本
<小于某个版本<1.2.1小于1.2.1版本
<=小于等于某个版本<=1.2.1小于等于1.2.1版本
-介于两个版本之间1.2.1 - 1.4.5介于1.2.1和1.4.5之间
x不固定的版本号1.3.x只要保证主版本号是1,次版本号是3即可
~补丁版本号可增~1.3.4保证主版本号是1,次版本号是3,补丁版本号大于等于4
^此版本和补丁版本可增^1.3.4保证主版本号是1,次版本号可以大于等于3,补丁版本号可以大于等于4
*最新版本*始终安装最新版本

避免还原的差异(package-lock.json)

版本依赖控制始终是一个两难的问题

如果允许版本增加,可以让依赖包的bug得以修复(补丁版本号),可以带来一些意外的惊喜(次版本号),但同样可能带来不确定的风险(新的bug)

如果不允许版本增加,可以获得最好的稳定性,但失去了依赖包自我优化的能力

而有的时候情况更加复杂,如果依赖包升级后,依赖也发生了变化,会有更多不确定的情况出现

基于此,npm 在安装包的时候,会自动生成一个 package-lock.json 文件,该文件记录了安装包时的确切依赖关系

当移植工程时,如果移植了 package-lock.json 文件,恢复安装时,会按照 package-lock.json 文件中的确切依赖进行安装,最大限度的避免了差异

npm的差异版本处理

如果两个包依赖同一个包的不同版本,如下图
A —> C 1.4.0
B —> C 1.2.3

面对这种情况,在 node_modules 目录中,不会使用扁平的目录结构,而会形成嵌套的目录,如下图:

├── node_modules
│   ├── a 
│   │   ├── node_modules
│   │   │   ├── c
│   │   │   |   |—— c包的文件
│   │   │── a包的文件     
│   ├── b 
│   │   ├── node_modules
│   │   │   ├── c
│   │   │   |   |—— c包的文件
│   │   │── b包的文件           

常用npm命令

安装

  1. 精确安装最新版本
npm install --save-exact 包名 
npm install -E 包名
  1. 安装指定版本
npm install 包名@版本号

查询

  1. 查询包安装路径
npm root [-g]
  1. 查看包信息
npm view 包名 [子信息]
## view aliases:v info show
  1. 查询安装包
npm list [-g] [--depth=依赖深度]
## list aliases: ls  la  ll
  1. 查看仓库地址
npm config get registry
  1. 设置淘宝镜像源
npm config set registry https://registry.npm.taobao.org

更新

  1. 检查有哪些包需要更新
npm outdated
  1. 更新包
npm update [-g] [包名]
## update 别名(aliases):up、upgrade

卸载包

npm uninstall [-g] 包名
## uninstall aliases: remove, rm, r, un, unlink

发布包

准备工作

  1. 移除淘宝镜像源
  2. 到npm官网注册一个账号,并完成邮箱认证
  3. 本地使用 npm cli 进行登录
    1. 使用命令npm login登录
    2. 使用命令npm whoami查看当前登录的账号
    3. 使用命令npm logout注销
  4. 创建工程根目录
  5. 使用npm init进行初始化

发布

  1. 开发
  2. 确定版本
  3. 使用命令npm publish完成发布

开源协议

在这里插入图片描述

可以通过网站 http://choosealicense.online/appendix/ 选择协议,并复制协议内容

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容npm ERR! 是npm命令运行时常见的错误提示。具体的错误信息通常会有不同的代码和错误号。根据引用,错误代码是ELIFECYCLE,错误号是2。根据引用,错误代码是ENOENT。根据引用,错误代码是ELIFECYCLE,错误号是1。这些错误通常与npm脚本的执行有关。以下是对这些错误的解释和可能的解决方法: 1. npm ERR! code ELIFECYCLE, errno 2: 这个错误通常表示在执行npm脚本时出现了某种问题,比如脚本命令本身有错误,或者依赖包的版本不兼容等。解决方法包括: - 检查脚本命令是否正确,是否有语法错误。 - 确保所有依赖包的版本兼容,并且已经正确安装。 - 尝试更新npm和node.js的版本。 - 清除npm缓存,然后重新安装依赖包。 2. npm ERR! code ENOENT: 这个错误通常表示找不到指定的文件或目录。解决方法包括: - 检查package.json文件是否存在,并且路径是否正确。 - 检查相关的文件或目录是否存在,并且路径是否正确。 - 确保在正确的目录下执行npm命令。 综上所述,根据提供的引用内容npm ERR! 可能是由于脚本命令错误、依赖包版本不兼容、文件或目录找不到等原因导致的。解决方法包括检查脚本命令、依赖包版本、文件路径等是否正确,并进行相应的修复和调整。如果问题仍然存在,可以尝试更新npm和node.js的版本,或者清除npm缓存并重新安装依赖包。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值