• Node.js 入门教程 23 使用 npm 的语义版本控制 & 24 卸载 npm 软件包 & 25 npm 全局或本地的软件包


    Node.js 入门教程

    Node.js官方入门教程

    Node.js中文网

    本文仅用于学习记录,不存在任何商业用途,如侵删

    23 使用 npm 的语义版本控制

    如果 Node.js 软件包中有一件很棒的事情,那就是它们都同意使用语义版本控制作为版本编号。

    语义版本控制的概念很简单:所有的版本都有 3 个数字:x.y.z

    • 第一个数字是主版本。
    • 第二个数字是次版本。
    • 第三个数字是补丁版本。

    当发布新的版本时,不仅仅是随心所欲地增加数字,还要遵循以下规则:

    • 当进行不兼容的 API 更改时,则升级主版本。
    • 当以向后兼容的方式添加功能时,则升级次版本。
    • 当进行向后兼容的缺陷修复时,则升级补丁版本。

    该约定在所有编程语言中均被采用,每个 npm 软件包都必须遵守该约定,这一点非常重要,因为整个系统都依赖于此。

    【为什么这么重要?】

    因为 npm 设置了一些规则,可用于在 package.json 文件中选择要将软件包更新到的版本(当运行 npm update 时)。

    规则使用了这些符号:

    • ^
    • ~
    • >
    • >=
    • <
    • <=
    • =
    • -
    • ||

    这些规则的详情如下:

    • ^: 只会执行不更改最左边非零数字的更新。 如果写入的是 ^0.13.0,则当运行 npm update 时,可以更新到 0.13.10.13.2 等,但不能更新到 0.14.0 或更高版本。 如果写入的是 ^1.13.0,则当运行 npm update 时,可以更新到 1.13.11.14.0 等,但不能更新到 2.0.0 或更高版本。
    • ~: 如果写入的是 〜0.13.0,则当运行 npm update 时,会更新到补丁版本:即 0.13.1 可以,但 0.14.0 不可以。
    • >: 接受高于指定版本的任何版本。
    • >=: 接受等于或高于指定版本的任何版本。
    • <=: 接受等于或低于指定版本的任何版本。
    • <: 接受低于指定版本的任何版本。
    • =: 接受确切的版本。
    • -: 接受一定范围的版本。例如:2.1.0 - 2.6.2
    • ||: 组合集合。例如 < 2.1 || > 2.6

    可以合并其中的一些符号,例如 1.0.0 || >=1.1.0 <1.2.0,即使用 1.0.0 或从 1.1.0 开始但低于 1.2.0 的版本。

    还有其他的规则:

    • 无符号: 仅接受指定的特定版本(例如 1.2.1)。
    • latest: 使用可用的最新版本。

    24 卸载 npm 软件包

    若要卸载之前在本地安装(在 node_modules 文件夹使用 npm install )的软件包,则从项目的根文件夹(包含 node_modules 文件夹的文件夹)中运行:

    npm uninstall 
    
    • 1

    如果使用 -S--save 标志,则此操作还会移除 package.json 文件中的引用。

    如果程序包是开发依赖项(列出在 package.json 文件的 devDependencies 中),则必须使用 -D--save-dev 标志从文件中移除:

    npm uninstall -S 
    npm uninstall -D 
    
    • 1
    • 2

    如果该软件包是全局安装的,则需要添加 -g--global 标志:

    npm uninstall -g 
    
    • 1

    例如:

    npm uninstall -g webpack
    
    • 1

    可以在系统上的任何位置运行此命令,因为当前所在的文件夹无关紧要。

    25 npm 全局或本地的软件包

    本地和全局的软件包之间的主要区别是:

    • 本地的软件包 安装在运行 npm install 的目录中,并且放置在此目录下的 node_modules 文件夹中。
    • 全局的软件包 放在系统中的单独位置(确切的位置取决于设置),无论在何处运行 npm install -g

    在代码中,应该只引入本地的软件包:

    require('package-name')
    
    • 1

    所以何时应该以一种或另一种方式安装?

    通常,所有的软件包都应本地安装。

    这样可以确保计算机中可以有数十个应用程序,并且如果需要,每个应用程序都可以运行不同的版本。

    更新全局软件包会使所有的项目都使用新的版本,这可能会导致维护方面的噩梦,因为某些软件包可能会破坏与其他依赖项的兼容性等。

    所有的项目都有自己的软件包本地版本,即使这看起来有点浪费资源,但与可能产生的负面影响相比也很小。

    【有理】

    当程序包提供了可从 shell(CLI)运行的可执行命令、且可在项目间复用时,则该程序包应被全局安装。

    也可以在本地安装可执行命令并使用 npx 运行,但是某些软件包最好在全局安装。

    一些流行的全局软件包的示例有:

    • npm
    • create-react-app
    • vue-cli
    • grunt-cli
    • mocha
    • react-native-cli
    • gatsby-cli
    • forever
    • nodemon

    可能已经在系统上安装了一些全局软件包。 可以通过在命令行上运行以下命令查看:

    npm list -g --depth 0
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    关于jQuery_属性选择器的介绍和基本使用
    27.cuBLAS开发指南中文版--cuBLAS中的Level-2函数syr2()
    JAVA毕设项目商品货物信息管理系统(java+VUE+Mybatis+Maven+Mysql)
    易联众智能自动办理平台,AI赋能让数字政务服务“触手可及”
    《已解决 Go Error: panic: runtime error: index out of range BUG 》
    1.7 生成模型与判别模型
    golang 基础 —— 字符串 与 int 、int64 互转
    WordPress建站入门教程:小皮面板phpstudy如何安装PHP和切换php版本?
    shell入门第四课循环结构
    flink核心思想
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/128073566