nodemon:无法加载文件 C:\Users\*\AppData\Roaming\npm\nodemon.ps1因为在此系统上禁止运行脚本。‘.‘ 不是内部或外部命令,也不是可运行的程序或批处理文。

一、背景

在Windows PowerShell等终端输入(npm、cnpm、nodemon)运行项目命令时,被提示无法加载文件,系统禁止运行脚本。具体错误描述如下图:


这个错误通常是由于Windows系统安全策略导致的,系统会默认阻止运行某些脚本文件。系统阻止某些脚本运行,是为了保护系统不被恶意脚本入侵。

二、解决方法

为了解决这个问题,可以尝试以下两种方法:

1、npx nodemon run dev

2、修改Windows系统执行策略;

三、实现与结果

先使用第一种方法运行项目,跳转到项目目录文件夹下,运行npx nodemon run dev,发现项目能够成功运行起来了,并且系统也不会报错。

npx nodemon run dev

运行效果图如下:

 第二种方法就是修改系统执行策略,可以放松或关闭严格策略。转入管理员模式:

Start-Process powershell -Verb runAs

可以使用以下命令查看执行政策的状态:

# 查看单个执行策略
Get-ExecutionPolicy
# 查看所有执行策略 
Get-ExecutionPolicy -List

如果以管理员在终端中执行get-ExecutionPolicy命令返回输出Restricted,就是禁止状态。下面是查询出来的执行策略状态列表,其中Undefined表示该数据项未定义,也就是windows默认阻止。

接下来修改系统执行策略,以管理员身份打开终端执行以下代码:

set-ExecutionPolicy RemoteSigned

执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“N”): A

 执行完成之后,再次使用get-ExecutionPolicy检查执行策略状态,返回RemoteSigned就可以了。

再次使用npm、cnpm运行项目时,它又报错了:

>npm run dev

> [email protected] dev
> ./node_modules/.bin/nodemon bin/www

'.' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
这是因为npm版本不匹配,只需要重新选择安装npm版本(6、7、8)即可。

# 安装npm,@后面接版本号
npm i -g npm@6
# 查看npm 版本
npm -v

重新选择npm版本安装后,就可以重新试着运行项目了,如果不行就再尝试更换npm版本。

 更多内容请参考:

http://t.csdn.cn/zrPWd

http://t.csdn.cn/jQZ4Q

http://t.csdn.cn/0c5HJ

http://t.csdn.cn/UhEZO

猜你喜欢

转载自blog.csdn.net/qq_58062502/article/details/131246476