在 VS 中运行 Angular 14 项目:错误:未知参数:端口、ssl、ssl-cert、ssl-key
我在 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。
我没有主意了,有人能给我指明正确的方向吗?
确保键和证书所在的目录的任何部分都包含空间,即
c:\ users< username> \ appdata \ roaming \ asp.net \ https \ https \ angularApp.key。在这种情况下,我建议您做的是将密钥和证书复制到c/drive上的新文件夹,然后手动更改package.json中的该行。 >
866865571
对我来说,解决这个问题的方法是安装最新版本的 node。 我卸载了当前版本的 node (16) 并安装了最新版本。 18.12.1
如果
%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 时将路径括起来。