一、nodemon启动报错无法将“nodemon”项识别
错误信息
nodemon : 无法将“nodemon”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
背景
由于我是采用的全局安装,尝试多次使用nodemon命令都一直提示错误(该报错信息通常是指,在当前路径以及所配置的环境变量路径中,并未找到该程序)。
后来看了许多博客后才知道可能由于环境变量设置引起的问题。但使用别人提供的安装路径后并无作用,查看之后才知自己的路径跟别人设置的不一样。
二、引起该问题主要分为两种情况:
1、可能未进行全局安装导致。
全局安装命令 npm install -g nodemon
2、没有配置环境变量导致。
- 若npm安装后,没有修改过模块安装位置。则默认安装在
C:\Users\XXX\AppData\Roaming\npm
。其中AppData是隐藏文件。 - 若安装npm后,自定义npm的模块安装位置(例如执行过如下命令),则安装路径为修改后的路径。
可通过执行npm config list
查看 npm 配置信息。
npm config set prefix="D:\nodejs\node_global"
npm config set cache="D:\nodejs\node_cache"
三、解决方案:
针对由于环境变量引起的错误,只需要在环境变量——系统变量——Path中,添加 prefix 所对应的全局安装路径即可(例如我的就是 D:\nodejs\node_global
)。如此方可在任何地方,执行nodemon。
重启Vscode / 命令窗口,执行nodemon server.js
补充:若仍报错,则尝试运行 npx nodemon xxx.js
命令。
扩展:
nodemon是一个帮助开发基于node.js的应用程序的工具,它可以在检测到目录中的文件更改时自动重新启动节点应用程序。不需要手动重新启动服务。
四、补充另一种错误及解决办法
nodemon : 无法加载文件 D:\nodejs\node_global\nodemon.ps1,因为在此系统上禁止运行脚本。
有关详细信息,请参阅 https:/go.micros oft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ nodemon 228.js
+
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
运行 get-ExecutionPolicy
查看权限,若非 RemoteSigned
,则是由于权限问题导致。
执行 Set-ExecutionPolicy -Scope CurrentUser
, 然后输入 RemoteSigned
即可。