• npm学习(十四)之npm5踩过的坑!


    1. 版本问题导致环境问题

    npm5之前我们第一次npm install时是根据package.json来安装相关依赖的,但是它里面的版本不固定,因此默认会根据最高的版本来安装相关依赖,但是在npm5是根据package-lock.json来安装相关依赖的,但前提是没有在命令行中新安装依赖或者更改package.json,否则就会根据package.json来安装,由于会安装依赖的最新版本,所以可能会出现兼容性问题。因此当我们安装环境时,又可能会出现问题,即版本问题导致环境问题!!!

    2. 那如果我们安装时的包有bug,后面需要更新怎么办?

    在以前可能就是直接改package.json里面的版本,然后再npm install了,但是5版本后就不支持这样做了,因为版本已经锁定在package-lock.json里了,所以我们只能npm install xxx@x.x.x  这样去更新我们的依赖,然后package-lock.json也能随之更新。

    3. 假如我已经安装了jquery 2.1.4这个版本,从git更新了package.json和package-lock.json,我npm install能覆盖掉node_modules里面的依赖吗?

    经过测试,在直接更新package.json和package-loc.json这两个文件后,npm install是可以直接覆盖掉原先的版本的,所以在协作开发时,这两个文件如果有更新,你的开发环境应该npm install一下才对。

    总结:

    • npm install xxx 安装相关包时,不需要在--save,它会自动将模块依赖信息安装在package.json文件的denpendecies中

    • 安装模块操作(更新node_moudles文件夹的内容)会自动生成和更新package-lock.json文件

    • 发布的模块不会包含package-lock.json文件

    • 如果手动修改了package.json文件中已存在模块的版本,直接执行npm install并不会安装新指定的版本,需要使用npm install xxx@yy来更新

    • 直接执行npm instll,如果不存在package-lock.json文件,会根据安装模块后的node_modules目录结构来创建,如果已经存在package-lock.json文件,则它只会根据package-lock.json文件指定的结构来下载模块,并不会理会package.json文件

    • 重新安装模块之所以快,是因为 package-lock.json 文件中已经记录了整个 node_modules 文件夹的树状结构,甚至连模块的下载地址都记录了,再重新安装的时候只需要直接下载文件即可

     

  • 相关阅读:
    最近很火的GAN应用
    pose项目里我遇到的问题
    pose的初体验
    Ubuntu 移动硬盘不能用
    深度学习中参数量与计算量的理解
    GAN的流程-cyclegan为例
    The version of SOS does not match the version of CLR you are debugging
    mnist 手写数字识别
    计算模型-图、数据模型-张量、运算模型-会话
    tensorflow环境安装
  • 原文地址:https://www.cnblogs.com/kunmomo/p/10002313.html
Copyright © 2020-2023  润新知