杂谈:关于运行 nodemon 报错-无法运行nodemon.ps1,因为在此系统上禁止运行脚本

发布于 2024-06-01  893 次阅读


写在开头

这篇文章原本本意就是一篇东拉西扯的内容,会有许多絮絮叨叨的内容,但是如果想直接知道解决方法请点击问题解决或者手动跳转至文末。

最近给公司用的CMS系统出问题了。当然,不是我的问题,但是根据官方群的管理员说是开发团队维护不起服务器了所以就没有维护官网,这就导致我对这个CMS以后是否还能稳定使用存在质疑。思来想去,决定了两个方案,第一个是之后无法使用该CMS了,就将该CMS开发的网站全部转为静态;第二个就是换CMS,现在刚好可以提前做准备。

寻找新的CMS

在各个平台寻找可以代替该CMS,首先是商用问题,因为公司想做站群增加SEO,所以前期的成本是个问题,如果像织梦一样一个网站一个商业授权,确实有点遭不住。

其次就是适配问题,因为现在的服务器是LAMP环境,如果换成LNMP或者其他的,可能部署和二开都会出现问题。

再一个就是模板和可扩展性,因为目前只有我一个人负责,我如果决定使用的话就必须要学会后做出一套二开的开发文档以供后来人按标准开发。

结果找来找去都没有满意的,后来我就把目光盯向了无头CMS,比如strapi这些,但是在部署以及使用体验上都不太好,最后我看到了用nodejs开发的CMS系统。因为都是前端,之前也有node入门的底子,于是就重新开始学习Node中Express搭建服务器的内容。

问题描述

学了nodejs的都知道,刚开始学node的时候要频繁的关闭服务器,重启服务器。后来我发现了一个好的插件叫nodemon(当然,之前就学过,但是好长时间没碰忘记了),于是我在我公司的电脑上安装后运行居然报错了。

nodemon : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\nodemon.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft 
.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ nodemon .\01_02_moduleRouter.js
+ ~~~~~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

问题解决

解决这个问题很简单,这是因为Microsoft 的 PowerShell 执行策略有一项安全功能,用于控制 PowerShell 加载配置文件和运行脚本的条件。 此功能有助于防止恶意脚本的执行。

在 Windows 计算机上,可以为本地计算机、当前用户或特定会话设置执行策略。 还可使用组策略设置为计算机和用户设置执行策略。

解决步骤:

  1. 用管理员身份打开Windows Power Shell(在任务栏的搜索框中搜索Power Shell,在右侧有个“以管理员身份运行”,点击即可)。
  2. 输入命令:set-ExecutionPolicy RemoteSigned,在询问是否更改执行策略时输入y并回车即可。
    PS C:\Windows\system32> set-ExecutionPolicy RemoteSigned
    执行策略更改
    执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
    中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
    [Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为"N"):
  3. 重新运行nodemon server.js即可成功运行