带有 Angular 的 Visual Studio 2022 ASP.NET Core
如果您按照 https://learn.microsoft.com/en-us/aspnet/core/client-side/spa/angular?view=aspnetcore-6.0&tabs=visual-studio 中的说明使用“dotnet new angular -o my-new-app”创建一个新的 VS 项目,则当您打开并运行该项目时,它将无法运行。错误如下所示。
有人知道如何让标准 Visual Studio 2022“带有 Angular 的 ASP.NET Core”项目运行吗?
npm start
> [email protected] prestart
> node aspnetcore-https
> [email protected] start
> run-script-os
> [email protected] start:windows
> ng serve --port 44486 --ssl --ssl-cert %APPDATA%\ASP.NET\https\%npm_package_name%.pem --ssl-key %APPDATA%\ASP.NET\https\%npm_package_name%.key
Node.js version v17.3.0 detected.
Odd numbered Node.js versions will not enter LTS status and should not be used for production. For more information, please see https://nodejs.org/en/about/releases/.
[HPM] Proxy created: [ '/weatherforecast' ] -> http://localhost:49901
node:internal/crypto/hash:67
this[kHandle] = new _Hash(algorithm, xofLen);
^
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:67:19)
at Object.createHash (node:crypto:130:10)
at BulkUpdateDecorator.hashFactory (C:\Dev\BookWebSite\Source\Test\newApp\ClientApp\node_modules\webpack\lib\util\createHash.js:145:18)
at BulkUpdateDecorator.update (C:\Dev\BookWebSite\Source\Test\newApp\ClientApp\node_modules\webpack\lib\util\createHash.js:46:50)
at RawSource.updateHash (C:\Dev\BookWebSite\Source\Test\newApp\ClientApp\node_modules\webpack\node_modules\webpack-sources\lib\RawSource.js:70:8)
at NormalModule._initBuildHash (C:\Dev\BookWebSite\Source\Test\newApp\ClientApp\node_modules\webpack\lib\NormalModule.js:880:17)
at handleParseResult (C:\Dev\BookWebSite\Source\Test\newApp\ClientApp\node_modules\webpack\lib\NormalModule.js:946:10)
at C:\Dev\BookWebSite\Source\Test\newApp\ClientApp\node_modules\webpack\lib\NormalModule.js:1040:4
at processResult (C:\Dev\BookWebSite\Source\Test\newApp\ClientApp\node_modules\webpack\lib\NormalModule.js:755:11)
at C:\Dev\BookWebSite\Source\Test\newApp\ClientApp\node_modules\webpack\lib\NormalModule.js:819:5 {
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
Node.js v17.3.0
原始问题: 可能这个项目类型尚未准备好,不应该由 Angular 新手使用。
我想学习如何将 Angular 与 .NET Core 和 Web API 一起使用,似乎这个项目类型应该很合适。我以前没有用过 npm,所以这对我来说大部分都是新的。我做的最后一个 Web 工作是使用 ASP.net MVC。
当我在 Visual Studio 2022 (17.0.4) 中创建项目时,我在错误列表中看到几个错误(不在输出窗口中),因为它无法在 ClientApp/note_modules 中找到各种文件。
我运行了 npm update,然后运行了其他各种命令来更新 angular 等等,现在我在看似 Angular Typescript 文件中遇到了各种编译错误。
如果我尝试从 VS 运行它,它会启动一个页面,然后尝试构建并给出以下错误。这让我相信这可能只适用于完全熟悉哪些版本的 TypeScript、Angular、Node.js 等的专家用户。他们需要所有这些才能正常工作。
Error: src/api-authorization/authorize.service.ts:91:13 - error TS2571: Object is of type 'unknown'.
91 if (popupError.message === 'Popup window closed') {
~~~~~~~~~~
Error: src/api-authorization/authorize.service.ts:104:29 - error TS2345: Argument of type 'unknown' is not assignable to parameter of type 'string'.
104 return this.error(redirectError);
~~~~~~~~~~~~~
Error: src/api-authorization/authorize.service.ts:139:27 - error TS2345: Argument of type 'unknown' is not assignable to parameter of type 'string'.
139 return this.error(redirectSignOutError);
~~~~~~~~~~~~~~~~~~~~
Error: src/api-authorization/authorize.service.ts:152:25 - error TS2345: Argument of type 'unknown' is not assignable to parameter of type 'string'.
152 return this.error(error);
找出这些行并在异常变量声明中添加“:any”
像这样:
} catch (popupError: any) {
这帮我解决了这个问题。
我刚刚将 VS 2022 更新到版本 17.1.0。我像以前一样创建了一个新的 Angular 项目,单击 F5 运行调试,然后它就初始化了,并按预期向我显示了 hello world 网页。
我猜这只是他们修复的一个错误。谢谢 MS。
尝试在命令行(Windows)中运行此命令。它清除了信封错误:
set NODE_OPTIONS=--openssl-legacy-provider