使用Hbuilder建立了一个web项目。然后在使用webpack打包时,终端出现了如下的错误信息:
查其原因是因为powershell对于脚本的执行有着严格的安全限制。
可以使用Set-ExecutionPolicy来修改PowerShell中执行策略的用户首选项(preference). 执行策略是Windows PowerShell安全策略中的一部分. 它将决定你是否可以载入配置文件(包括你的Windows PowerShell profile文件)和运行脚本, 它将会在运行前确定哪些文件必须具有数字签名(digitally signed).
其可选的参数如下:
Restricted: 不载入配置文件, 不执行脚本. "Restricted"是默认值.
AllSigned: 所有的配置文件和脚本必须通过信任的出版商签名(trusted publisher), 这里所指的脚本页包括你在本地计算机上创建的脚本.
RemoteSigned: 所有从互联网上下载的脚本必须通过信任的出版商签名(trusted publisher).
Unrestricted: 载入所有的配置文件和脚本. 如果你运行了一个从互联网上下载且没有数字签名的脚本, 在执行前你都会被提示是否执行.
由于默认值是Restricted,所以才会有上述错误信息,于是我们可以通过修改执行策略来解决上述遇到的问题
解决方案:
一、使用管理员身份打开PowerShell
二、键入Set-ExecutionPolicy RemoteSigned命令
三、键入Y
最后可以使用Get-ExecutionPolicy来看看是否修改成功
虽然最后打包成功,但是在这个过程中,还是出现了两点疑问:
1.为什么在设置执行策略之后,hbulider自带的终端上任然不能使用webpack命令,连版本号都查看不了?
2.为什么使用管理员身份打开cmd,在cmd中不能执行set-execution或者get-execution命令,只能在powershell上执行?