nodejs的npm改为国内源和参数
npm源改为国内
此方法不需要安装cnpm也可以使用淘宝镜像,提高国内访问速度
由于 Node 的官方模块仓库网速太慢,模块仓库需要切换到阿里的源。
npm config set registry https://registry.npm.taobao.org/
执行下面的命令,确认是否切换成功。
npm config get registry
如果输出:https://registry.npm.taobao.org/,则表示切换成功
npm源换回默认
npm config set registry https://registry.npmjs.org/
npm config get registry
cnpm
cnpm是淘宝团队做的国内镜像,因为npm的服务器位于国外可能会影响安装速度。淘宝镜像与官方同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
PS.网上有一些贴子说cnpm会丢包,如果遇到丢包,删除node_modules目录,再重新使用npm,总体来说网络上不太建议使用cnpm。
官网:https://developer.aliyun.com/mirror/NPM?from=tnpm
安装:命令提示符执行
npm install cnpm -g --registry=https://registry.npm.taobao.org
cnpm -v
来测试是否成功安装
安装完成后可以cnpm通过来代替默认的npm
cnpm install [name]
nrm
nrm
包安装命令:npm i nrm -g
nrm
能够管理所用可用的镜像源地址以及当前所使用的镜像源地址,但是只是单纯的提供了几个url并能够让我们在这几个地址之间方便切换nrm ls
即nrm list,查看所有可用的镜像,并可以切换。*号表示当前npm使用的地址,可以使用命令nrm use taobao
或nrm use npm
来进行两者之间的切换。
C:\Users\qing>nrm ls
npm -------- https://registry.npmjs.org/
yarn ------- https://registry.yarnpkg.com/
cnpm ------- http://r.cnpmjs.org/
* taobao ----- https://registry.npm.taobao.org/
nj --------- https://registry.nodejitsu.com/
npmMirror -- https://skimdb.npmjs.com/registry/
edunpm ----- http://registry.enpmjs.org/
npm参数-g -S -D
-g
:全局安装。 将会安装在C:\Users\Administrator\AppData\Roaming\npm
,并且写入系统环境变量;非全局安装:将会安装在当前定位目录;全局安装可以通过命令行任何地方调用它,本地安装将安装在定位目录的node_modules文件夹下,通过要求调用;-S
:即npm install module_name --save
,写入package.json
的dependencies
,dependencies
是需要发布到生产环境的,比如jq,vue全家桶,ele-ui等ui框架这些项目运行时必须使用到的插件就需要放到dependencies
-D
:即npm install module_name --save-dev
,写入package.json
的devDependencies
,devDependencies
里面的插件只用于开发环境,不用于生产环境。比如一些babel编译功能的插件、webpack打包插件就是开发时候的需要,真正程序打包跑起来并不需要的一些插件。
为什么要保存在
package.json
因为node_module包实在是太大了。用一个配置文件保存,只打包安装对应配置文件的插件,按需导入。
EAI_AGAIN
C:\Users\qing>npm install -g artipub --registry=https://registry.npm.taobao.org
npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npm.taobao.org/caporal failed, reason: getaddrinfo EAI_AGAIN registry.npm.taobao.org
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\qing\AppData\Roaming\npm-cache\_logs\2020-05-12T04_34_24_304Z-debug.log
在安装依赖时,报上面这个错误,网上有说防火墙的,我机器上的防火墙是关闭状态的,通过ping也是能连通这个链接
解决方法
通过上面提到的nrm,把源从taobao切换为其它就解决了,因为我们公司的网络屏蔽了淘宝和京东等网站。
需要全局安装的库
全局安装的库在这个目录C:\Users\qing\AppData\Roaming\npm
,都会有xx.cmd
--安装webpack
npm install webpack -g
npm install webpack-cli -g
--安装yarn
npm install --global yarn
参考资料:《'webpack' 不是内部或外部命令,也不是可运行的程序 或批处理文》
其它问题
为什么node_modules里面会有.staging这个东西?
.staging是在运行过程中出现的,当真正install所有包之后,node_modules里面的包就会显示正常,也就是,出现这个就是没有加载完。