开发者问题收集

在 VS 中运行 Angular 14 项目:错误:未知参数:端口、ssl、ssl-cert、ssl-key

2022-10-05
2807

我在 VS 项目中有一个客户端-服务器应用程序。创建项目时,Angular 8 是最新版本。我在将 8 升级到 14 时遇到了问题,因此决定创建一个新项目、安装 Angular 14 并将所有代码复制到新项目会更容易。现在应用程序的客户端部分已升级到 Angular 14,所以现在我想将其移动到原始项目中。

我认为这就像将 ClientApp 文件夹从新的 VS 项目复制到原始项目一样简单。嗯,显然不是,现在我收到一条错误消息

InvalidOperationException: The NPM script 'start' exited without indicating that the Angular CLI was 
listening for requests. The error output was: Error: Unknown arguments: port, ssl, ssl-cert, ssl-key

屏幕截图错误消息

我认为这与 package.json 文件有关,它读取

"scripts": {
    "ng": "ng",
    "prestart": "node aspnetcore-https",
    "start": "run-script-os",
    "start:windows": "ng serve --port 44455 --ssl --ssl-cert %APPDATA%\\ASP.NET\\https\\%npm_package_name%.pem --ssl-key %APPDATA%\\ASP.NET\\https\\%npm_package_name%.key",
    "start:default": "ng serve --port 44455 --ssl --ssl-cert $HOME/.aspnet/https/${npm_package_name}.pem --ssl-key $HOME/.aspnet/https/${npm_package_name}.key",
    "build": "ng build",
    "build:ssr": "ng run myproject:server:dev",
    "watch": "ng build --watch --configuration development",
    "test": "ng test"
  },

如果我采取这一行

ng serve --port 44455 --ssl --ssl-cert %APPDATA%\\ASP.NET\\https\\%npm_package_name%.pem --ssl-key %APPDATA%\\ASP.NET\\https\\%npm_package_name%.key

将证书和密钥的路径替换为它们的实际位置并运行它,一切似乎都很好:

** Angular Live Development Server is listening on localhost:44455, open your browser on https://localhost:44455/ **


√ Compiled successfully.

我有 Angular 14.2.4(本地和全局)和节点v16.14.2。

我没有主意了,有人能给我指明正确的方向吗?

3个回答

确保键和证书所在的目录的任何部分都包含空间,即 c:\ users< username> \ appdata \ roaming \ asp.net \ https \ https \ angularApp.key。在这种情况下,我建议您做的是将密钥和证书复制到c/drive上的新文件夹,然后手动更改package.json中的该行。 > 866865571

CleanCode
2023-05-02

对我来说,解决这个问题的方法是安装最新版本的 node。 我卸载了当前版本的 node (16) 并安装了最新版本。 18.12.1

Gilbert
2022-12-09

如果 %npm_package_name% 引用的路径包含空格,则会出现此问题。要解决此问题,请编辑 package.json 并将 --ssl-cert--ssl-key 的路径括起来(转义),如下所示:

"scripts": {
    "ng": "ng",
    "prestart": "node aspnetcore-https",
    "start": "run-script-os",
    "start:windows": "ng serve --port 44455 --ssl --ssl-cert \"%APPDATA%\\ASP.NET\\https\\%npm_package_name%.pem\" --ssl-key \"%APPDATA%\\ASP.NET\\https\\%npm_package_name%.key\"",
    "start:default": "ng serve --port 44455 --ssl --ssl-cert \"$HOME/.aspnet/https/${npm_package_name}.pem\" --ssl-key \"$HOME/.aspnet/https/${npm_package_name}.key\"",
    "build": "ng build",
    "build:ssr": "ng run myproject:server:dev",
    "watch": "ng build --watch --configuration development",
    "test": "ng test"
  },

我认为这是 Visual Studio 中的一个错误:它应该在自动生成 package.json 时将路径括起来。

MrBrighton
2023-08-08