zoukankan      html  css  js  c++  java
  • 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 文件夹的树状结构,甚至连模块的下载地址都记录了,再重新安装的时候只需要直接下载文件即可

     

  • 相关阅读:
    css 选择器
    用 jupyter notebook 打开 oui.txt 文件出现的问题及解决方案
    jupyter notebook 中用 matplot 画图不显示图像
    dropna(thresh=n) 的用法
    pandas 对象中 to_pickle 方法参数命名问题,不能用frame
    Index.get_indexer 方法的含义
    7)微分
    5)函数极限与连续函数
    3)数据科学的数学之序列与极限--阶乘/指数增长比较
    2)数据科学的数学之序列与极限
  • 原文地址:https://www.cnblogs.com/kunmomo/p/10002313.html
Copyright © 2011-2022 走看看