Upgrade from 8 to 9
I have had a question.Though I often executed "npm -g update" and Angular ver.9 has already been released, but Angular version in my PC is still 8.
Why?
Finally I got the reason.
I must install @angular/cli again.
npm install -g @angular/cliIt's same as updating NuGet packages.
After installing, I just do "ng update @angular/cli @angular/core" on my project.
Angular Update Guide
set basehref
Because I use IIS, base url becomes like "http://localhost:5000/sample".So when I build Angular product, I must add path to index.html like below.
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Sample</title>
<base href=""> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="sample/favicon.ico">
</head>
<body>
<app-root></app-root>
<script src="sample/runtime-es2015.js" type="module"></script>
<script src="sample/runtime-es5.js" nomodule defer></script>
<script src="sample/polyfills-es5.js" nomodule defer></script>
<script src="sample/polyfills-es2015.js" type="module"></script>
<script src="sample/styles-es2015.js" type="module"></script>
<script src="sample/styles-es5.js" nomodule defer></script>
<script src="sample/vendor-es2015.js" type="module"></script>
<script src="sample/vendor-es5.js" nomodule defer></script>
<script src="sample/main-es2015.js" type="module"></script>
<script src="sample/main-es5.js" nomodule defer></script>
</body>
</html>
Because I'm tired to do again and again.Finally I know I don't need do that.
I should set "base href" in the index.html.
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Sample</title>
<base href="/sample/"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<app-root></app-root>
<script src="runtime-es2015.js" type="module"></script>
<script src="runtime-es5.js" nomodule defer></script>
<script src="polyfills-es5.js" nomodule defer></script>
<script src="polyfills-es2015.js" type="module"></script>
<script src="styles-es2015.js" type="module"></script>
<script src="styles-es5.js" nomodule defer></script>
<script src="vendor-es2015.js" type="module"></script>
<script src="vendor-es5.js" nomodule defer></script>
<script src="main-es2015.js" type="module"></script>
<script src="main-es5.js" nomodule defer></script>
</body>
</html>
And I can set it automatically by "ng build --base-href /sample/".I also can add to package.json
package.json
{
"name": "ngrx-sample",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --base-href /sample/",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
...
Angular 2 / 4 / 5 - Set base href dynamically - Stack Overflow
Angular - ng build
Integrated in ASP.NET Core app
How about an Angular project what is integrated in ASP.NET Core app?[ASP.NET Core][Angular] Integrate Angular app into ASP.NET Core app - msl note
Build command written in csproj.
UpgradeSample.csproj
...
<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
<!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
<Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build -- --prod --base-href /sample/" />
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build:ssr -- --prod" Condition=" '$(BuildServerSideRenderer)' == 'true' " />
<!-- Include the newly-built files in the publish output -->
<ItemGroup>
<DistFiles Include="$(SpaRoot)dist\**; $(SpaRoot)dist-server\**" />
<DistFiles Include="$(SpaRoot)node_modules\**" Condition="'$(BuildServerSideRenderer)' == 'true'" />
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
<RelativePath>%(DistFiles.Identity)</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</ResolvedFileToPublish>
</ItemGroup>
</Target>
</Project>
コメント
コメントを投稿