windows系统在执行用户命令时顺序
windows系统在执行用户命令时,若用户未给出文件的绝对路径,
则
(1)首先在当前目录下寻找相应的可执行文件、批处理文件等;
(2)若找不到,再依次在系统变量的PATH保存的这些路径中寻找相应的可执行程序文件。查找顺序是按照路径的录入顺序从左往右寻找的,最前面一条的优先级最高,如果找到命令就不会再向后寻找。
(3)如果还找不到再继续在用户变量的PATH路径中寻找。
如果系统变量和用户变量的PATH中都包含了某个命令,则优先执行系统变量Path中包含的这个命令。
正确路径可以解决的问题:
1.无法将XXX项识别为 cmdlet、函数、脚本文件或可运行程序的名称
官网下载nodejs
下载完成后
我们要先配置npm的全局模块的存放路径以及cache的路径,例如我希望将以上两个文件夹放在nodejs的主目录下,便在nodejs下建立”node_global”及”node_cache”两个文件夹。如下图:
然后,在cmd里面输入下面的命令行,来设置npm存放模块的路径,修改成自己的目录:
在cmd中输入以下指令,设置缓存和全局安装文件夹为上述新建文件夹。
修改npm 全局缓存和全局安装位置
请将D:\DApp\nodejs替换为你自己的node.js的安装路径。
npm config set prefix "D:\DApp\nodejs\node_global"
npm config set cache "D:\DApp\nodejs\node_cache"
验证
npm config get prefix
npm config get cache
有需要的可以更换源,下载包的速度会更快
-- 查看镜像源 npm get registry
-- 修改成淘宝镜像源 npm config set registry https://registry.npm.taobao.org
// 后面地址变成了浅灰色 也要加进去 那是淘宝镜像源地址
修改系统环境变量
属性 --> 高级系统设置 --> 环境变量 --> 首先到用户环境变量中修改 path 中它自动给我们加的环境变量 我的是改过的 你们的是在 C:\Users\用户名\AppData\Roaming\npm下 将它改为你们的Node.js 安装的地址中新建的D:\DApp\nodejs\node_global文件夹下
【最后的反斜杠要不要都行】
还要添加D:\DApp\nodejs 用来执行npm命令的环境
然后修改系统变量 在系统变量中新增 名为 NODE_PATH 和值为D:\此处为自己安装地址\node_global\node_modules 路径
验证
成功
在cmd命令行中,在不指定路径的情况下执行某个命令,系统不一定知道这个命令对应的可执行文件在哪,如果在可执行文件所在的目录放到Path环境变量中,就能够确保找到对应的可执行文件。
1、系统变量和用户变量的区别
由于windows系统可以创建多个账户,用户环境变量就是只对当前的账户有效,可以看到用户环境变量的全称是xxx的用户变量,表示这只是针对某个账户的变量;而系统变量就是对多有的账户都是有效的。
系统变量与用户变量的联系与区别如下:
系统变量与用户变量可以存在重名,比如系统变量与用户变量都可以一个名为Path的变量
如果系统变量与用户变量重名,优先使用系统变量
系统变量与用户变量的变量名都不区分大小写,即path与PATH是一样的
系统变量对所有的用户有效,用户变量只当前的用户有效。
Path变量告诉系统可执行文件存放的路径。
一般来说,我们电脑只有一个主用户,所以在其中任何一个配置即可,但当你用户变量和系统变量中同时配置时,若用户变量更新了配置,
系统变量也要做相应的改变,故一般情况下都建议配置系统环境变量。
在使用 nodejs 开发中我们都免不了要去安装一些第三方模块。
那么你或多或少的遇到过以下一些问题
再继续阅读之前,我们先来弄清楚一个概念。
npm install --global xxx 属于全局安装
npm install xxx 属于本地安装
安装的模块太多项目太臃肿,模块没能复用
你写一个项目 A 需要安装一个 express 模块,又开发一个项目 B 又需要安装一个 express 模块
项目中依赖包太多,文件过多,模块没法复用,各种问题浮现
NODE_PATH 出现,模块复用,最佳实践方案
NODE_PATH 是干什么的呢?
操作系统中都会有一个PATH环境变量,想必大家都知道,当系统调用一个命令的时候,就会在PATH变量中注册的路径中寻找,如果注册的路径中有就调用,否则就提示命令没找到。
那 NODE_PATH 就是NODE中用来寻找模块所提供的路径注册环境变量。
NODE_PATH中的路径被遍历是发生在
从项目的根位置递归搜寻 node_modules 目录,直到文件系统根目录的 node_modules,如果还没有查找到指定模块的话,就会去 NODE_PATH中注册的路径中查找。