node中关于npm的使用
创建时间:2018-2-22 22:06:23 -最后修改时间:2018-2-22 22:06:23 -阅读:114 -评论:1
npm的含义
- Node.js的开放式模块登记和管理系统
- Node.js默认的模块管理器 npm package management
- 是一个基于node做的一个终端中的应用程序,叫做 npm
node的安装
- 普通安装包方式- node安装包下载地址
- 通过在终端中输入
node -v
验证是否安装成功
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
- cnpm
查找机制
- 当加载一个第三包的时候,内部查找机制
- 例如我在 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.js
、index.json
、index.node
的方式进行加载
- 如果在上面的流程中还没有找到
- node 会自从进入当前目录的上一级目录下找
node_modules
目录开始查找,重复上面的流程 - 直到node进入当前文件所属的根路径(例如
c:/a/b/c/foo.js
,那么根路径就是c:/
) - 如果最后在根路径下还是找不到,最后报错。
- node 会自从进入当前目录的上一级目录下找
- 例如我在 foo.js 文件中写了这样的一句代码:
评论
jun 2025-7-1 1:46:10
222