Nodemon无法启动报错:nodemon.ps1因系统禁用脚本运行无法加载
报错原因
该问题的核心原因有两个:
- PowerShell的执行策略优先级从高到低为:
MachinePolicy>UserPolicy>Process>CurrentUser>LocalMachine。部分IDE内置终端(比如VS Code的PowerShell终端)启动时会临时将Process作用域的执行策略设为限制状态,优先级高于你配置的CurrentUser和LocalMachine策略,导致配置不生效。 - PowerShell的执行策略按架构(32位/64位)、版本(Windows PowerShell/PowerShell Core/pwsh)独立存储,你可能在A终端中配置了策略,但实际运行nodemon用的是另一个环境的B终端,两者的配置互不通用。
解决方法
方法1:临时修改当前会话策略(单次生效,安全便捷)
在你运行nodemon报错的终端内直接执行以下命令,完成后再启动nodemon即可:Set-ExecutionPolicy RemoteSigned -Scope Process -Force该配置仅对当前打开的终端窗口有效,关闭后自动恢复,不会影响系统全局安全设置。
方法2:匹配当前Shell环境配置永久策略
首先在报错的终端中执行以下命令,确认当前环境的实际执行策略:Get-ExecutionPolicy -List如果当前Shell的
CurrentUser作用域不是RemoteSigned,直接在当前终端执行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force重启终端后即可永久生效。
方法3:绕开PowerShell脚本执行限制(无需修改策略)
两种可选操作:- 用npx启动nodemon:
npx nodemon 你的项目启动文件.js - 在项目
package.json的scripts字段中配置启动命令:
之后用{ "scripts": { "dev": "nodemon index.js" } }npm run dev启动即可,不会触发PowerShell的脚本校验逻辑。
- 用npx启动nodemon:
方法4:删除PowerShell版nodemon启动脚本
找到全局npm安装路径下的nodemon.ps1文件直接删除,系统会自动调用nodemon.cmd执行启动,完全规避PowerShell的脚本限制。
内容的提问来源于stack exchange,提问作者Mikhail Shamaev
相关产品推荐
相关产品推荐

