当我在一个农村的小镇上,用的是挪动宽带,用 npm 去拉载一些依赖时,常常抛出
info There appears to be trouble with your network connection. Retrying... // 你的网络连接仿佛有问题,在重试…
哪怕我开了网络代理,也会呈现,
装置一个依赖十分麻烦,这时才想到用淘宝镜像代理
长期应用
npm --registry https://registry.npm.taobao.org install express
永恒应用
npm config set registry https://registry.npm.taobao.org
配置 CNPM
这样的话,你用 npm 走的还是官网的,cnpm 走的代理
npm install -g cnpm --registry=https://registry.npm.taobao.org
复原应用
npm config set registry https://registry.npmjs.org
验证是否设置胜利
npm info express
or
npm config get registry
NPM 相干命令
整顿 npm 罕用的一些命令,不便查看
继续更新 npm
你能够通过上面的命令显示 npm 以后的版本:
npm -v
如果有须要,能够通过上面的命令更新 npm:
npm install -g npm
当 Node 的主版本 released 之后,你也可能须要从新构建 C++ 扩大:
npm rebuild
如果你须要治理多个版本的 node.js 和 npm,能够思考应用 n 或者 nvm,https://www.sitepoint.com/quick-tip-multiple-versions-node-nvm/,我举荐大家应用 nvm 去治理 node.js 版本
卸载
如需删除 node_modules 目录上面的包(package),请执行:
npm uninstall <package>:
npm uninstall lodash
如需从 package.json 文件中删除依赖,须要在命令后增加参数 –save:
npm uninstall --save lodash
留神:如果你将装置的包作为 “devDependency”(也就是通过 –save-dev 参数保留的),那么 –save 无奈将其从 package.json 文件中删除。所以必须通过 –save-dev 参数能够将其卸载。
更新包
npm update package #更新部分模块
npm update -g package #更新全局模块
npm update -g package@version #更新全局模块 package-name 到 x.x.x 版本
指定版本
npm view react versions 查看包在 npm 所有版本
npm i vue@2.0.0 --save 装置指定版本
应用开发中的模块
当你正在开发一个模块时,会常常想在其它我的项目中尝试应用或者在任何一个目录运行它 (如果你的利用反对),这时没必要将其公布到 npm,并全局装置 — 仅需在该模块所在目录应用上面的命令:
npn list
该命令会为模块在全局目录下创立一个符号链接。能够通过上面的命令查看模块援用:
npm list -g --depth=0
或者:
npm outdated -g
当初,就能够从命令行运行模块或者通过 require 在任何我的项目中引入该模块。
另一个抉择是,能够通过文件门路在 package.json 文件中申明对该模块的依赖:
"dependencies": {"myproject": "file:../myproject/"}
常见通用命令
npm root #查看本地装置的目录
npm root -g #查看全局装置的目录
npm info package #查看包信息
npm ls #查看本地安装包
npm ls -g #查看全局安装包,蕴含依赖
npm ls -g --depth 0 #查看全局安装包,不蕴含依赖
npm outdated #列出所有不是最新版的包,能够带参数
npm cache clean #革除本地缓存
npm config ls -l #查看 npm 配置
npm view package versions #查看包的所有版本
npm publish #公布包
npm access #设置公布包的拜访级别
npm search modulNmae #搜寻包是否存在
package.json 参数介绍
说完了 npm,天然也得说下 package.json 文件的作用,以及阐明
key 字段介绍
name - 包名
version - 包的版本号
description - 包的形容
homepage - 包的官网 url
author - 包的作者姓名
contributors - 包的其余贡献者姓名
dependencies - 依赖包列表。如果依赖包没有装置,npm 会主动将依赖包装置在 node_module 目录下
repository - 包代码寄存的中央的类型,能够是 git 或 svn,git 可在 Github 上
main - main 字段是一个模块 ID,它是一个指向你程序的次要我的项目。就是说,如果你包的名字叫 express,而后用户装置它,而后 require("express")
keywords - 关键字
npm i 选项–global,–save,–save-dev
-global: 简写 -g
npm i express -g 为全局装置,这种就能够间接应用 express 命令, 否则会提醒 express 不是外部或外部命令
-save: 简写 -S, 作用是在 package.json 的 dependencies 字段减少或批改安装包和版本号
-save-dev: 简写 -D, 是批改 devDependencies, 这样就不必装置了某个包之后手动批改 package.json
~ 与 ^ 版本
版本分为: 主版本号、次版本号、补丁版本号
"devDependencies": {
"vue": "~2.2.2", // 匹配最近小版本,如,会匹配所有的 2.2.x 版本,但最高不会匹配 2.3.0
"vue-router": "^2.2.0" // 最近的一个大版本,所有 2.x.x 但不不包含 3.0.0,相当于 2.0.0 <= version < 3.0.0
}
script 属性
script 属性定义的对应了一段 shell 脚本
npm start 启动模块
该命令写在 package.json 文件 scripts 的 start 字段中,能够自定义命令来配置一个服务器环境和装置一系列的必要程序
"scripts": {"start": "gulp -ws"}
npm stop 进行模块
npm restart 重新启动模块
你可能在开发中用到是用 npm run xxx,之类的,start,stop,restart 是几个通用命令,阔以不必加 run
npm start === npm run start
举荐
npm 模块管理器
具体介绍了 npm 的应用,以及参数相干配置
https://javascript.ruanyifeng.com/nodejs/npm.html