cannot be loaded because running scripts is disabled on this system. For more information, see ...

完整的报错描述是这样的:

   cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1  其大概意思就是无法加载*.ps1 文件,因为在此系统上禁止运行脚本。

cannot be loaded because running scripts is disabled on this system. For more information, see ..._第1张图片

   我是执行ng serve 的时候报这个问题的,当然有可能其他指令也会触发该问题,其根本原因是因为 系统中脚本执行策略是严格模式,权限不够。因此即便是系统中已经安装了npm,cnpm等等,在使用其指令的时候仍然会报错。

  解决方式:

  1.进入到 Window PoweShell

cannot be loaded because running scripts is disabled on this system. For more information, see ..._第2张图片

2.输入  Set-ExecutionPolicy RemoteSigned 回车

3.按Y 然后回车 即可解决问题

归纳一下Policy 的参数:

   首先PowerShell执行策略是一个安全功能,用来控制加载配置文件和运行脚本的前提条件,其主要目的就是防止恶意脚本的执行。而这个执行策略我们可以根据自身需要去修改,当我们遇到无法执行的脚本时,就可以通过修改相应的脚本内容,绕过一些策略。

  这里面我们将参数设置成 'RemoteSigned ',意思是远程签名,表明系统认定脚本可以运行,需要Trusted publisher(受信任的发布者)从Internet下载的脚本和配置文件进行数字签名。对于在本地计算机上编写且未从 Internet 下载的脚本,不需要数字签名。

还有一些其他的执行策略

  AllSigned: 脚本可以运行,在从尚未分类为受信任或不受信任的发布者运行脚本之前,提示你

  Restricted: 允许单个命令,但不允许脚本。

  Unrestricted:可以载入所有配置文件,可以运行所有脚本文件. 如果你运行一个从internet下载并且没有签名的脚本,在运行之前,会被警告。

  Bypass:不阻止任何操作,并且没有任何警告或提示。

  Undefined:当前作用域中未设置执行策略。

 

 

你可能感兴趣的:(npm,前端,node.js)