Node.js学习 (十三)package.json、package-lock.json 最通俗的理解

注意: npm v5 以后版本安装包可以不加 --save ,它会自动在package.json 中的 dependencies 保存依赖信息

package.json
  • express": "^4.16.2" 这个 ^ 符号就是代表版本
    对于开发者来说最有价值就是 dependencies ,可以用来帮我们保存第三方包的依赖信息。如果你的node-modules 删除了也不用担心,我们只需要 npm install 就会把 package.json 中 所有 dependencies 依赖项都下载回来。
  • 所以建议每个项目的根目录都有package.json 文件
  • 建议执行 npm install 包名 的时候都加上 --save 这个选项, 目的就是为了保存依赖项信息
{
  ...
  "dependencies": {
    "art-template": "^4.12.2",
    "express": "^4.16.2",
  }
}
package-lock.json
  • package-lock.json 中记录你所使用第三方包的所有依赖选项, 依赖包中也可能有依赖包 。 比如express 包 还依赖别的第三方包都会在这里记录下来。你可以打开express的package.json 就可以看到它的依赖!
  • package-lock.json 还详细的记录了所有依赖的版本和下载地址。 可以高效的完成包安装
  • package-lock.json 中主要目的就是为了锁定当前项目使用包的版本和它依赖的版本, 不至于项目每次安装都是最新的依赖包,导致版本不符项目出错

npm v5 以前是不会有 package-lock.json 这个文件的, 之后才加入。 当你安装包时, npm 自动会生成或者更新 package-lock.json 文件

{
  ...
    "art-template": {
      "version": "4.12.2",
      "resolved": "http://registry.npm.taobao.org/art-template/download/art-template-4.12.2.tgz",
      "integrity": "sha1-pB64LZZ5u9HHPx+Dj/RujrBhJWU=",
      "requires": {
        "acorn": "5.2.1",
        "detect-node": "2.0.3",
        "escodegen": "1.9.0",
        "estraverse": "4.2.0",
        "html-minifier": "3.5.6",
        "is-keyword-js": "1.0.3",
        "js-tokens": "3.0.2",
        "merge-source-map": "1.0.4",
        "source-map": "0.5.7"
      }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_39043923/article/details/89327146