首页 文章

npm install vs. update - 有什么区别?

提问于
浏览
410

npm installnpm update 之间的实际区别是什么?我什么时候应该使用哪个?

4 回答

  • 535

    已经提到了许多区别 . 还有一个:

    在源目录顶部运行 npm install 将运行各种脚本: prepublishpreinstallinstallpostinstall . 根据这些脚本的作用, npm install 可能比安装依赖项做更多的工作 .

    我刚刚有一个用例 prepublish 会调用 makeMakefile 用于在 package.json 更新时获取依赖项 . 从 Makefile 中调用 npm install 将导致无限递归,而调用 npm update 工作正常,安装所有依赖项,以便即使直接调用 make ,构建也可以继续 .

  • 68

    npm install中指定的包版本的npm installnpm update之间的区别:

    {
      "name":          "my-project",
      "version":       "1.0",                             // install   update
      "dependencies":  {                                  // ------------------
        "already-installed-versionless-module":  "*",     // ignores   "1.0" -> "1.1"
        "already-installed-semver-module":       "^1.4.3" // ignores   "1.4.3" -> "1.5.2"
        "already-installed-versioned-module":    "3.4.1"  // ignores   ignores
        "not-yet-installed-versionless-module":  "*",     // installs  installs
        "not-yet-installed-semver-module":       "^4.2.1" // installs  installs
        "not-yet-installed-versioned-module":    "2.7.8"  // installs  installs
      }
    }
    

    Summary :唯一的大不同是 an already installed module with fuzzy versioning ......

    npm install 忽略

    • npm update 更新

    Additionallyinstallupdate 默认情况下处理devDependencies的方式不同

    • npm installinstall/update devDependencies,除非添加 --production 标志

    • npm updateignore devDependencies,除非添加 --dev 标志


    Why use npm install at all?

    因为除了在 package.json 中处理依赖项之外, npm install 做了更多 . 正如你在npm install中看到的,你可以......

    • 手动安装节点模块

    • 使用 npm install -g <name> 将它们设置为全局(将它们置于shell的 PATH 中)

    • 安装git标签描述的某些版本
      _999_从git url安装

    • 强制重新安装 --force

  • 7

    npm install 安装 package.json 文件中列出的所有模块及其依赖项 .

    npm update 更新 node_modules 目录中的所有包及其依赖项 .

    npm install express 仅安装快速模块及其依赖项 .

    npm update express 更新express模块(从npm@2.x开始,它不更新其依赖项) .

    因此,更新适用于已有模块并希望获得新版本的更新 .

  • 42

    在大多数情况下,这将安装在npm上发布的最新版本的模块 .

    npm install express --save
    

    或者更好地将模块升级到最新版本使用:

    npm install express@latest --save --force
    

    --save :包将出现在您的依赖项中 .

    更多信息:npm-install

相关问题