• npm的使用


    npm

    1. npm介绍

    • npm是javascript的依赖管理工具管理工具,全称 node package manager
    • npm是随着node一起安装的,不同版本的node对应不同版本的npm
    • 如何检测能否使用npm
      • npm --version

    2. npm的命令

    • npm init命令用来初始化某个文件夹为npm管理
      • 输入此命令会出现很多次提示,需要我们来填写内容
          package name      包名
          version          版本
          description      描述
          main             入口文件
          scripts          支持的脚本,默认是一个空的 test
          keywords         关键字,有助于在人们使用 npm search 搜索时发现你的项目
          author           作者
          license:         版权许可证(默认:ISC)
          dependencies     在生产环境中需要用到的依赖
          devDependencies  在开发、测试环境中用到的依赖
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • npm init -y使用默认的内容
      • 执行此命令成功后会在当前文件夹生成package.json文件
    • npm install命令,用于下载安装依赖,可简写 npm i
      • npm i 依赖名称
      • npm i 依赖名称@依赖对应的版本号
      • 安装的依赖名称和可使用的版本好可以在www.npmjs.com网站搜索,比如说我们要安装jquery
      • 安装的依赖不加版本号默认下载最新版本
      • 安装依赖成功之后会在本地生成一个node_modules文件夹和package-lock.json

      • npm i 指向此命令可以根据项目里面的package.json记录,自动安装对应的依赖和版本
    • npm uninstall命令,用于卸载安装的依赖,可简写 npm un
      • npm uninstall 依赖名称
      • 卸载的时候不需要加版本号,因为一个项目里面一个依赖只能有一个版本
    • npm update命令用来更新依赖
      • npm update 依赖名称
      • 一般不推荐使用此命令,会直接安装新版本覆盖老版本
    • npm run命令用来指向package.json里面scripts配置的命令
          "scripts": {
              "test": "echo \"Error: no test specified\" && exit 1"
              "dev": "node a.js",
              "start": "node b.js"
          },
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 执行npm run dev就会自动到package.json找到后面的语句 相当于执行了node a.js
      • 针对与某些命令可以省略run,比如start和test之类,直接执行npm start
    • npm cache命令用来管理npm的缓存
      • 每一次npm下载的依赖都会自动缓存,下次如果再次安装相同的依赖,npm会去缓存直接下载,而不会去网上下载
      • 默认缓存的地址一般是C:\Users\Administrator\AppData\Roaming\npm-cache
      • 当安装依赖时出现错误码是-4048需要清除缓存
        • npm cache clean
        • npm cache clean --force
    • npm config命令用来配置npm
      • 上面我们说到npm下载会缓存到C:\Users\Administrator\AppData\Roaming\npm-cache,如果我们不希望它往这个目录缓存,我们可以设置自定义它的缓存目录(但不建议修改)
        • npm config set cache 目录地址
      • 安装的依赖默认是从npm官网仓库下载,官网下载一般比较慢,我们可以手动配置npm的下载源
        • npm config set registry https://registry.npm.taobao.org

    3. npm下载源

    • 所谓的下载源就是执行npm i 依赖名的时候下载依赖网站的地址
    • 默认下载会从npm官网,也就是http://registry.npmjs.org网站下载,这个网站在国外,下载速度比较慢
    • 一般我们会切换到国内的下载源,也称之国内的镜像源
      • 镜像源就是国内某些大厂会将npm官网的文件复制一份到自己的服务器,npm官网更新,这边资源也会自动更新,就像照镜子一样
    • 切换的命令我们可以使用上面的npm config set registry https://registry.npm.taobao.org,这样我们就切换到了淘宝的镜像服务器
    • 那么有哪些镜像源可以使用呢?我们要使用一个工具叫做nrm
    • 使用这个工具可以查看可用镜像源有哪些,还可以自由切换镜像源

    4. nrm使用

    • nrm使用需要安装,我们在cmd命令行执行以下的代码
      • npm i nrm -g
      • 这个地方多了个-g我们待会解释,这是npm依赖安装的另一种方式
    • 安装成功之后,我们就可在cmd使用nrm命令,记住是nrm,不是npm
      • nrm test 检测可用下载源
    • 我们选择一个延迟比较短的切换过去,比如说淘宝
      • nrm use taobao
    • 切换之后我们再次执行nrm test就可以看到*就在淘宝上面了
    • 有时候我们既要使用原来的npm下载源还要使用淘宝的镜像源,我们可以单独安装一个命令cnpm
      • npm install -g cnpm --registry=https://registry.npm.taobao.org
      • 此后我们使用cnpm install 依赖名就是从淘宝源下载,使用npm install 依赖名就是原来的Npm官网下载

    5. npm安装依赖的方式

    • 不同依赖的安装方式决定着我们不同的使用,npm安装依赖的方式主要有以下三种
      1. 全局安装依赖
        • 全局安装一般我们需要把安装的依赖当成一个工具来使用,在cmd命令行中使用,比如说nrm cnpm
        • 全局安装依赖方式
          • npm i 依赖 --global 或者简写 npm i 依赖 -g
          • 安装完成之后我们就可以在命令行使用这个依赖了
          • -g可以放在依赖名前面或者后面写 npm i 依赖 -gnpm i -g 依赖
        • 全局安装的依赖存储的默认位置在C:\Users\Administrator\AppData\Roaming\npm,可以手动设置全局安装的目录
          • npm config set prefix 目录路径
          • 不建议修改,修改之后可能导致安装无法使用
      2. 局部安装依赖
        • 当成开发和调试中的依赖一般我们要导入项目中使用,比如说我们后面会安装一个mysql,我们需要用require的方式导入代码使用,这种我们使用方式不一样,又分为以下两种
        • 局部的依赖安装之后都会在本地文件夹生成一个node_modulespackage-lock.json
        1. 当成开发和调试中依赖安装
          • 安装命令 npm i 依赖 --save-dev or npm i 依赖 -D
          • 这种方式的安装会记录到package.json的devDependencies
          • 打包上线的时候的时候不会将依赖打入到安装包
          • 比如安装的依赖有 gulp webpack这种工具类的只会在开发中用
        2. 当成生产中的依赖安装
          • 安装命令 npm i 依赖 --save or npm i 依赖 -S
            lp webpack`这种工具类的只会在开发中用
        3. 当成生产中的依赖安装
          • 安装命令 npm i 依赖 --save or npm i 依赖 -S
          • 这种方式的安装会记录到package.json的dependencies
  • 相关阅读:
    axios封装(例如:请求头、token、超时、BaseUrl、请求错误、请求重复)
    二叉树的遍历-树-数据结构和算法(Java)
    十四、【VUE-CLI】配置代理服务器
    ScrollView嵌套RV,滑动有阻力不顺滑怎么办?
    网络编程基础知识总结——IP,端口,协议
    mybatis中按照时间搜索功能
    讲讲vue3下会造成响应式丢失的情况
    SpringBoot:Web开发之三大组件详解
    数据结构实战开发教程(一)数据的艺术、理解程序的本质、算法的时间复杂度
    算法---水壶问题(DFS)
  • 原文地址:https://blog.csdn.net/GAGGAAAAA/article/details/136516676