electron-node.js-ng:无法加载文件路径\ng.ps1,因为在此系统上禁用了运行脚本

electron-node.js-ng:无法加载文件路径\ng.ps1,因为在此系统上禁用了运行脚本,node.js,angular,powershell,electron,npm-start,Node.js,Angular,Powershell,Electron,Npm Start,我正在尝试在visualstudio code中的windows10上编译项目,我的设置如下: 1) npmversion6.12 2) Node.jsversion12.13 3) Angular CLI:8.3.19 我遇到的问题是,当我尝试运行ng serve时,我收到以下输入:ng:文件C:\Users\name\AppData\Roaming\npm\ng.ps1无法加载,因为在此系统上禁用了运行脚本。后跟有关详细信息,请参阅https://go.microsoft.com/fwlin

我正在尝试在
visualstudio code
中的
windows10
上编译项目,我的设置如下:

1)
npm
version
6.12

2)
Node.js
version
12.13

3)
Angular CLI:8.3.19

我遇到的问题是,当我尝试运行
ng serve
时,我收到以下输入:
ng:文件C:\Users\name\AppData\Roaming\npm\ng.ps1无法加载,因为在此系统上禁用了运行脚本
。后跟
有关详细信息,请参阅https://go.microsoft.com/fwlink/?LinkID=135170上的关于执行策略。

我到目前为止所做的尝试

1)我访问了建议的网站,发现
Set ExecutionPolicy-ExecutionPolicy RemoteSigned
应该是我必须在shell中输入的命令。因此,我所做的是:

PS C:\Users\raggi\OneDrive\Desktop\pitalkdashboard>Set ExecutionPolicy-ExecutionPolicy RemoteSigned

但这导致了以下错误:

设置执行策略:拒绝访问注册表项HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell。要更改默认(本地计算机)作用域的执行策略,请使用“以管理员身份运行”选项启动Windows PowerShell。要更改当前用户的执行策略,请运行“Set ExecutionPolicy-Scope CurrentUser”。

这正是我所做的,因此:

PS C:\Users\raggi\OneDrive\Desktop\pitalkdashboard>Set ExecutionPolicy-Scope CurrentUser

下面是Shell提示,我只需插入
RemoteSigned

cmdlet在命令管道位置1设置ExecutionPolicy

为以下参数提供值:

ExecutionPolicy:RemoteSigned

之后,我尝试
ng serve
启动整个项目,但收到了不同的错误,我将其放在打印屏幕下方,因为它太长了:

我对这条路线没有任何想法了

2)根据建议和

我试图以管理员身份访问和运行,如下面的打印屏幕所示:

但是我在外壳上看到的唯一东西如下(但是外壳立即消失,我只有时间拍摄打印屏幕)

3)我深入研究了这个问题,发现了一些额外的见解,如和。然而,这篇文章唯一要指出的是,再次使用我在上面第1点尝试过的
Set ExecutionPolicy-ExecutionPolicy RemoteSigned

4)经过更多的研究,我发现了一些有用的信息,但不幸的是,我没有使用任何有用的信息

代码

下面是我的
包.json中的内容,如果有用的话:

{
  "name": "pi-talk-dashboard",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@agm/core": "^1.0.0-beta.5",
    "@angular/animations": "^6.0.3",
    "@angular/common": "^6.0.3",
    "@angular/compiler": "^6.0.3",
    "@angular/core": "^6.0.3",
    "@angular/forms": "^6.0.3",
    "@angular/http": "^6.0.3",
    "@angular/platform-browser": "^6.0.3",
    "@angular/platform-browser-dynamic": "^6.0.3",
    "@angular/router": "^6.0.3",
    "chart.js": "^2.7.3",
    "core-js": "^2.5.4",
    "electron": "^7.1.0",
    "express": "^4.17.1",
    "moment": "^2.22.2",
    "ng2-charts": "^1.6.0",
    "rxjs": "^6.0.0",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.803.17",
    "@angular/cli": "~6.0.8",
    "@angular/compiler-cli": "^6.0.3",
    "@angular/language-service": "^6.0.3",
    "@types/jasmine": "~2.8.6",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "~4.2.1",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~1.7.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.0",
    "karma-jasmine": "~1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "^5.4.1",
    "ts-node": "~5.0.1",
    "tslint": "~5.9.1",
    "typescript": "~2.7.2"
  }
}
编辑

以管理员身份运行-ExecutionPolicy Unrestricted后,以下脚本在
记事本中打开,但我不确定它的用法。我附上打印屏幕和打开文件的代码:

代码如下:

#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent

$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
  # Fix case when both the Windows and Linux builds of Node
  # are installed in the same directory
  $exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
  & "$basedir/node$exe"  "$basedir/node_modules/@angular/cli/bin/ng" $args
  $ret=$LASTEXITCODE
} else {
  & "node$exe"  "$basedir/node_modules/@angular/cli/bin/ng" $args
  $ret=$LASTEXITCODE
}
exit $ret
编辑2

在PowerShell上运行后
-ExecutionPolicy Unrestricted
没有任何更改。但是出现了一个错误<代码>数据路径“.builders['app-shell']”应具有必需的属性“class”。
请参阅下面的打印屏幕


关于如何运行此项目以及如何解决此
ng serve
问题,我已经没有什么想法了,任何其他方向的见解或指导都将有助于解决此问题。

您必须将执行策略设置为不受限制的而不是
远程签名的
。根据:

远程签名。要求从Internet下载的所有脚本和配置文件都由受信任的发布者签名。这个 Windows server计算机的默认执行策略

由于99%的PowerShell脚本未签名,因此99%的时间您将无法在此策略下运行它们

  • 以管理员身份打开PowerShell
  • 运行:
    • 发行
    我也面临同样的问题,经过一些研究,我发现只需绕过限制,通过ng服务器启动你的应用程序

    • 在终端中,您可以键入以下内容:
    PS C:\Users\\\ClientApp>Set ExecutionPolicy-ExecutionPolicy Bypass-Scope CurrentUser

    PS C:\Users\\\ClientApp>ng服务

    • 重新运行你的应用程序:

    我试图运行电子包装机时遇到了这个问题

    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
    

    已修复此问题。

    按错误中所述打开文件,只需删除ng.ps1文件,即可正常工作


    就我而言,它是nodemon.ps1。我删除了它并启动了服务器。

    以管理员身份打开Powershell并执行以下命令:

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted
    

    将bin文件夹路径添加到环境变量路径将起作用

    尝试使用“npx ng”而不是“ng”。如果我尝试使用任何“ng”命令,包括“ng new”,则会出现相同的权限错误。使用此npm软件包运行程序可为我解决此问题。

    设置环境变量路径,但不适用于我的案例。然后使用powershell(作为管理员模式)运行以下行

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted
    

    现在它正在工作。谢谢

    在项目文件夹中运行此命令

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    

    祝您好运

    在powershell中运行下面的命令

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted
    
    如果一切正常,您将看到如下屏幕


    你好,谢谢你阅读我的问题。如第2点所述,我无法使用
    admin
    权限访问
    ng
    脚本,因为shell立即消失。是否有其他方法可以直接在
    Visual Studio
    embedded Shell上以管理员身份访问PowerShell(
    Set-ExecutionPolicy -ExecutionPolicy Unrestricted