关于前端:初始化angular13-spring-boot-27

2次阅读

共计 2066 个字符,预计需要花费 6 分钟才能阅读完成。

讲一下初始化 angular13 + spring boot 2.7 的流程,以及遇到的问题。

Angular 初始化

装置 Node.js

查看你的电脑是否装置了node.js, 若没有能够去 https://nodejs.org/zh-cn/ 装置。咱们将用其下的 npm 来装置一些软件.

转到终端并输出node -v,能够看到你装置的 node -v 版本。

装置 Angular CLI

运行 npm install -g @angular/cli 能够以装置 Angular CLI,

或者执行 npm i @angular/cli@^13.0.0 以装置特定版本的 CLI。

而后输出ng version 以查看它正确地装置到了电脑上。

创立 Angular 我的项目

首先在终端中进入你抉择的目录,而后运行
ng new <application name>

来创立一个 Anagular 我的项目

创立好的目录如下图

在 Angular 我的项目目录中关上一个终端会话,而后运行以在 ng serve 中构建和运行应用程序。应该在终端中看到此编译胜利音讯。

期间遇到的问题

1. 版本不对

其实在创立的时候用的是 angluar12 的版本,

然而在前面想增加某一个组件的时候,

报错 The package that you are trying to add does not support schematics.


起初查看官网得悉起初发现这个组件须要的是的是 angular13 的版本,于是从新创立应用 angular13 版本。

这也揭示咱们要留神所应用的组件的适配版本。

2. Jasmine tests 单元测试为空

这个也找了很久都没有解决。单元测试什么都不显示

然而我在控制台中打印以后组件的 htmlElement 元素,是能够看到失常打印的

能够看到正确打印了 htmlElement 元素, 阐明渲染是胜利的。然而页面依然没有显示。


起初发现在 Angular 13 中,他们为测试引入了一个新的优化个性:

来自 https://blog.angular.io/angul…

咱们对 TestBed 进行了一些重要的改良,当初能够更好地在每次测试后拆除测试模块和环境。当初,每次测试后都会清理 DOM,开发人员能够期待更快、更少内存密集、更少相互依赖和更优化的测试。

起因是每次测试的时候会清理 DOM,导致页面没有显示。

解决办法:增加 teardown: {destroyAfterEach: false},如下第 9 行的内容。

1 beforeEach(async () => {
2    await TestBed.configureTestingModule({3      declarations: [],
4      imports: [
5        IndexModule,
6        HttpClientModule,
7        RouterTestingModule
8      ],
9      teardown: {destroyAfterEach: false}   +
10    })
11    .compileComponents();
12  });

就能够退出这个模式。

感想:
事实上我感觉应用 fit 的时候很有必要查看页面渲染的内容,然而 angular13 间接一刀切了。

如果加一个设置,全局关上 / 敞开 这个模式,这样全局单元测试的时候清理 DOM,应用 fit 的时候就不清理。两败俱伤多好。

Spring Boot 初始化

JDK 和 Maven

首先确保你的电脑装置了 JDKMaven, 命令如下。

若没有装置,能够参考装置
https://www.kancloud.cn/yunzh…

初始化 Sring boot 我的项目

返回 https://start.spring.io
能够抉择须要的版本,这里抉择的是 2.7.1, 以及java8 版本。

而后点击红色局部,增加 spring web 利用

最初点击 Generate the project 生成我的项目将其下载的任意本人喜爱的文件夹,下载成后解压

这里我解压成名为 api 的文件夹,与 angular 我的项目放在同一个目录下。

进入终端 执行 mvn spring-boot:run 命令

之后能够看到运行我的项目胜利的后果

遇到的问题

在开始的时候原本是用的最新版本的 spring boot,抉择了 3.0.0(M3) 版本, 并依据我的项目要求应用的是java8


但之后运行的时候报错:invalid target release 17

接下来找了半天问题。
最初找到了 pom.xml 文件。发现它指的是 java verison 的 17,无奈解析。

然而一想:我方才初始化的不是用的是 java8 吗,怎么变 17 了。

之后参考以前的我的项目,发现用 java8, 外面要填成1.8

于是我换成了 1.8

再运行发现了新的谬误:class file has wrong version。

而后又改了几次,依然不行。而后就 猜测是 spring boot 版本的问题,


我从新创立了个我的项目,抉择了 2.7.1 版本

之后再运行,没有报错,而且 pom.xml 也是我抉择的 1.8。解决问题。

可能 java8 不适宜 3.0.0 版本的 spring boot。

总结:

这次初始化中遇到版本的问题比拟多,然而这也是很失常的问题。再加上以前的初始化的教训,这次解决问题的速度快了很多。总之游刃有余,多经验多解决。

正文完
 0