网上搜了不少文章可是感受都很差,本身写一个:
此文仅针对win10下安装node,版本为v8.11.0;
node下载地址选择对应版本
通常选稳定版64位.msi
若是以前装过node,安装以前最好先手动删除相关环境变量,和相关node_modules文件夹。
下载后的安装包首先取得管理员全部权
网上不少教程都会所有点下一步,其实新版node彷佛?是自带配置PATH功能的:
本身选路径,我选的是D:\nodejs\
html
安装时选Add to Path
而后各类下一步,直至finish.
完成以后,咱们查看环境变量:
控制面板>系统>高级系统设置>环境变量>
就能发现他已经帮咱们配置好了?环境变量..
其中后者是设置在roaming的,貌似是若是和其余用户公用设备会产生一些问题,不太懂,相关能够阅读npm官方文档。
这里我就开始很疑惑了,网上找的配置node环境变量的文章,为何都是配一个node_global或者node_modules的东西?而没有这个npm的东西。
而当用npm install一些包以后,有全局安装和本地安装,那么nodejs下有node_modules,appdata下也有node_modules,二者有什么区别呢?还须要作什么配置吗?
鉴于msi安装时的配置,一个是系统的环境变量,一个是当前用户(我是administrator),node
环境变量的有两种,一种是系统环境变量,另外一种是用户环境变量。系统环境变量的设定对全部用户都起做用,而用户环境变量只对当前用户起做用。
“当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下寻找此程序外,还会到系统的环境变量path和用户的环境linux
变量path中指定的路径去找。(系统的环境变量优先)”ios
是否,取得管理员权限时会调用前者,不然会调用后者,而windows貌似是很是容易不知道搞没搞到权限的?git
结合网上的配置文章,在未找到相关资料的状况下,我做以下推测:
默认状况下,npm和Node一块儿装在C:\Program Files (x86)\nodejs
,如下简称%Program%
;
而包括npm本身和他全局安装的包(cnpm..etc)是装在另外一个user-specific路径的C:\Users\<username>\AppData\Roaming\npm
,如下简称%Appdata%
由于在环境变量中,安装程序把%Program%
放在%Appdata%
前面,他会一直使用和node装一块儿的npm,而不是你安装的npm -g install npm@<version>
。github
????npm
从npm的wiki中关于windows中npm更新,咱们能够了解到:
可下载win下npm更新软件windows
解决的思路就是只选一个,前两种是删%Program%
有三种可选解决方法,步骤a以下:
选择1.环境变量中把%Appdata%\npm
放%Program%\nodejs
前面,每次配置完环境变量或者安装npm须要重启cmd.exe,可能windows也要重启。app
选择2.将二者都删除:%Program%\nodejs\npm
%Program%\nodejs\npm.cmd
spa
选择3.在%Program%\nodejs\node_modules\npm'文件夹下,复制
npmrc`文件至另外一个文件夹或桌面,而后打开cmd.exe,输入下面命令:
cd %ProgramFiles%\nodejs npm install npm@latest
若是你是使用Node.js安装程序,在完成上述步骤a的一种后,作步骤b:
选择1或2.把npmrc从%Program%\nodejs\node_modules\npm'复制出来黏贴到
%appdata%npmnode_modulesnpm`
https://en.wikipedia.org/wiki...
关于环境变量,在windows系统上,地址之间使用;
分开的。当在命令行输入命令,执行一个程序的时候,系统会如今本地路径搜索,而后就会去环境变量中寻找,在PATH
中从左到右寻找可执行的文件名.EXE
或.COM
,或是BAT
,CMD
。
npm使用$APPDATAnpm来保证非管理员也能写和存储全局包。若是这个路径不存在,建立他须要管理员权限,npm -g install就没法运行
Windows installer doesn't ensure that $USERNAMEAppDataRoaming exists
(其实有一种方法使用nvm管理Nodejs的版本,可是我感受nvm很是黑魔法,我不会用,有卸载图为证,反正有阴影了,不想碰)
可是并不排除以上问题,并不是nvm,而是一直被人诟病的“npm是屎同样的存在,node是翔同样的存在,二者合二为一,啪啪啪啪..”??
事实上用命令行安装更好?能够有相关安装log若是报错能够知道?
详细参见某目录下工做人员回复?忘了在哪看过的了...
敢兴趣能够搜一下...
但是怎么得到命令行的管理员权限?
linux/ios下能够sudu blablabla
为何 npm 要为每一个项目单独安装一遍 node_modules?
脑袋疼 有空再纠结了