zoukankan      html  css  js  c++  java
  • npm安装问题解决

    转载的博客

    npm包管理原理

    当你使用npm安装一个包(并保存它)或者更新一个包的时候,package.json里就自动添加了一条信息,包括包名和其版本。npm默认安装最新版本,然后在其版本号之前添加一个符号。比如1.2.12,它表明最低应使用1.2.12版本。并且在这之上,拥有相同大版本号的任何版本都是OK的。毕竟小版本和bugfix版本不会对使用造成任何影响,所以用任何相同大版本的更高级版本都很安全。

    • 符号^:表示主版本固定的情况下,可更新最新版。例如:vuex: "^3.1.3",3.1.3及其以上的3.x.x都是满足的。
    • 符号~:表示次版本固定的情况下,可更新最新版。如:vuex: "~3.1.3",3.1.3及其以上的3.1.x都是满足的。
    • 无符号:无符号表示固定版本号,例如:vuex: "3.1.3",此时一定是安装3.1.3版本。
    举例:
    "^1.2.3": 大于等于 1.2.3 且小于 2.0.0版本
    "^0.3.4": 大于等于 0.3.4 且小于 0.4.0版本
    "^0.0.6": 大于等于 0.0.6 且小于 0.0.7版本
    

    不同的环境下生成相同的node_modules

    如果只有一个package.json文件,运行npm i会根据它生成一个package-lock.json文件,这个文件相当于本次install的一个快照,它不仅记录了package.json指明的直接依赖的版本,也记录了间接依赖的版本。
    如果package.json的semver-range version和package-lock.json中版本兼容(package-lock.json版本在package.json指定的版本范围内),即使此时package.json中有新的版本,执行npm i也还是会根据package-lock.json下载

    yarn同理。

    但是cnpm是不会读取package-lock.json这个文件的,也不会生成package-lock.json这个文件,所以,cnpm是不支持依赖版本锁定的。

    大概有这么几条方案:

    1. package.json中固定版本
    2. npm+package-lock.json
    3. npm+npm-shrinkwrap.json
    4. yarn+yarn-lock.json

    关于切换npm源

    手动更换npm源

    • 设置npm源: npm config set registry [url]

    • 查看确认: npm config get registry

    使用nrm

    • 安装nrm:npm i nrm -g

    • 查看可选的源:nrm ls

    • 切换到某个源:nrm use xx

    • 例如切换到淘宝源:nrm use taobao

    • 增加源(添加企业内部的私有源或者其他源):nrm add [registryName] [url]

    • 删除源:nrm del <registryName>

    • 测试某个源的相应时间:nrm test taobao

  • 相关阅读:
    Scala_模式匹配
    Scala_特质
    Scala_继承
    Scala_对象
    Scala_类
    Scala_关键字
    Scala_数据结构
    Scala_方法、函数、柯里化
    Scala_控制结构
    Scala_基本语法
  • 原文地址:https://www.cnblogs.com/shouyaya/p/15353554.html
Copyright © 2011-2022 走看看