Bruce个人博客

node中关于npm的使用

创建时间:2018-2-22 22:06:23 -最后修改时间:2018-2-22 22:06:23 -阅读:114 -评论:1

npm的含义

node的安装

node简单使用

- 通过在终端中输入 `node` 命令之后敲回车就可以进入
- 通过连续按两次的 ctrl+c 就可以退出 REPL 环境

基本使用

  • npm init [-y]
    • 加 -y 参数表示直接生成 package.json 文件
  • npm install [--save] 包名
    • 加上 --save 参数表示将当前安装的包添加到 package.json 文件中的依赖项中
  • npm uninstall [--save] 包名
  • npm install [email protected] [@]可以定义版本号
  • npm install jquery zepto bootstrap > 可以同时下载多个包

升级npm

  • npm install -g npm
  • npm install -g 工具包名
    • http-server、less
    • npm install -g http-server
  • npm uninstall -g 包名
  • npm docs 包名
  • npm install
  • npm install --save 包名npm instlal -g 包名的区别

对于 npm install 包名 或者 npm install --save 包名来说, 都是为了在项目中通过 require 加载改包。使用里面的功能。

对于包来说,还有一些基于node开发的一些命令行工具。 一般这种工具,我们都是可以在全局命令行中直接就可以使用的, 例如输入 node 命令,例如输入 npm 命令

安装第三方命令台工具的时候,一定要加 -g 参数

例如:less 就是是基于 node 开发一个命令行终端程序, 可以用来将 less 语法的文件编译成 css 文件

  • 解决切换版本造成全局工具包丢失问题
    • 通过 npm root -g 查看全局包安装位置
    • 通过 npm config set prefiex "路径"
    • node 的最新版已经没有这个问题了

淘宝的镜像源下载

  • 解决npm被墙问题
    • cnpm
      • 一种方式在安装包的可以动态的指定镜像源地址
      • npm install underscore --registry=https://registry.npm.taobao.org
      • 淘宝做了一个 cnpm 全局命令行工具,类似于 npm ,使用 cnpm 默认从淘宝的镜像源下载
      • npm install -g cnpm
        • cnpm install [--save] 包名
        • cnpm install -g 包名
        • cnpm uninstall ...
    • nrm
      • npm registry manage nrm 是一个全局命令行工具
      • npm install -g nrm
      • nrm use taobao

查找机制

  • 当加载一个第三包的时候,内部查找机制
    • 例如我在 foo.js 文件中写了这样的一句代码:require('underscore')
    • 首先node会在foo.js所属目录下找一个叫做 node_modules 的目录
    • 如果找到 node_modules 目录,那么找该目录下有没有一个叫做 underscore 的目录
    • 如果在 node_modules 目录找到 underscore 目录
    • 那么node会在 underscore 目录下找一个叫做 package.json 的文件
    • 如果找到 package.json 文件,那么node会在该文件中,找一个 main 的属性
    • 如果找到该属性,那么 node 会将该属性指定的模块路径作为加载的路径,然后加载
    • 如果在 underscore 目录下
      • 没有 package.json 文件
      • 或者 package.json 文件中没有 main 属性
      • 或者 main 属性指定的入口模块不存在
      • 那么 node 会在 underscore 目录下按照 index.jsindex.jsonindex.node 的方式进行加载
    • 如果在上面的流程中还没有找到
      • node 会自从进入当前目录的上一级目录下找 node_modules 目录开始查找,重复上面的流程
      • 直到node进入当前文件所属的根路径(例如 c:/a/b/c/foo.js,那么根路径就是 c:/
      • 如果最后在根路径下还是找不到,最后报错。

评论

  • jun 2025-7-1 1:46:10

    222