angular 标准目录结构_jhipster生成的目录结构
发布日期:2022-02-03 13:16:52 浏览次数:9 分类:技术文章

本文共 2512 字,大约阅读时间需要 8 分钟。

5247d5006c70ce1622632494515e7c3c.png

之前的文章介绍了生成典型应用的过程。

陈龙:从0开始,5分钟创建一个Spring Boot + Angular/React应用​zhuanlan.zhihu.com
ffa1e221ed2932c3af644771fe6c89e4.png

这篇文章介绍生成应用的内部结构。先介绍一级目录和配置文件。服务器端Java和前端Typescript代码后面文章会跟上。

JHipster生成的原始目录结构:

5d97315a26c5c093a041e35cbae6c56d.png

这是jhipster/jhipster-sample-app的目录结构,这个sample app是JHipster自己在Github上创建的,为了让初学者更方便了解生成的内容。

左侧的目录结构用了一个Chrome的插件才能展示出来,Github本身没有这个界面,具体可以参考我的另外一篇文章中的第一种方法:

陈龙:高效阅读Github源代码​zhuanlan.zhihu.com
f90b8d45a50c97925af0a5fdc2f739a3.png

用VS Code打开工程之后的目录结构:

a7fafe6f32787a7e93b5fca67589d567.png
JHipster生成的代码结构,一级目录

点开头的文件夹和文件在Mac下都是隐藏的。

.mvn是一个Maven wrapper,用Spring initializr(http://start.spring.io)生成Spring Boot工程也会自动生成这个Maven wrapper。

Maven wrapper的目的就是让你在没有安装Maven的情况下也可以用运行各种Maven命令(goal),例如./mvnw install。同时保证在使用版本控制的前提下,所有人用同一个版本的Maven,因为所有人用的是同一个.mvn,避免可能每个人Maven版本不同带来的没必要的麻烦。

.settings和.vscode不是JHipster生成的,而是VS Code和VS Code上的Java language Extension生成的。

node目录也不是JHipster一开始生成的,而是在第一次编译或启动应用的时候(运行 ./mvnw),Maven插件下载了制定版本的Node和NPM。这个和.mvn类似,也是避免参与同一项目的小组成员机器上安装的Node和NPM版本不一致,造成没必要的麻烦。

例如,当前JHipster 5.2.7的POM.xml里是这样配置的:

f052bced50fa2b0dc37fe220e72bc2c4.png

node_modules目录也不是JHipster一开始创建的,而是npm install安装前端依赖生成的。

src目录是标准的Maven工程目录结构。

target也不是JHipster一开始创建的,而是编译时生成的。编译的临时文件和最终成果都会放在target里面。

webpack是webpack的配置文件所在目录。

.editorconfig是editorconfig的配置文件。editorconfig起到的作用就是在各种编辑器和IDE之间建立一种通用的标准的代码风格(例如缩紧用tab还是space,程序文件的编码用utf-8)配置文件。有了一份.editorconfig文件,就不用再单独给每一个编辑器或IDE单独配置了。

.gitattributes.gitignore是Git的配置文件。.gitignore配置那些内容应该被git忽略,例如node_modules、target目录就不应该进入版本控制。

.huskyrc是husky(哈士奇)的配置文件。husky配合git使用,更好的支持git hooks。

.prettierigonre.prettierrc是prettier的配置文件,关于prettier可以先看我的另一篇文章:

陈龙: 代码界的美图秀秀​zhuanlan.zhihu.com
6693c67484fb750000e226e95a8cc7d2.png

.yo-rc.json是Yeoman的配置文件,yeoman是一种写脚手架工具的平台。jhipster命令就是用yeoman开发的一个脚手架工具,帮助我们快速生成工程代码。所以,用jhipster命令生成代码后,.yo-rc.json会记录创建过程中的所有选项。在我们之前的文章中已经介绍过了。

angular.json是angular cli命令行工具的配置文件,用ng-cli生成的工程,就会生成这个文件。虽然前端代码是jhipster生成的,没有用到ng-cli,但是为了保持和ng-cli的兼容,jhipster也生成了有效的angular.json文件。

mvnwmvnw.cmd分别是Linux/Mac和Windows下的脚本文件,调用.mvn wrapper。

package.jsonpackage-lock.json是NPM的配置文件。因为这是一个全栈应用,包含前端代码,所以需要node和npm。package.json记录前端工程的信息,包括scripts、dependenses等内容,类似服务器端maven的pom.xml。package.json记录的依赖版本都是一个范围,而npm install后确定下来的具体版本会记录在package-lock.json里。

pom.xml是Maven的配置文件。

postcss.config.js是postcss的配置文件。

proxy.conf.js是在使用Angular CLI的时候用来配置代理的。前后端分离部署之后,前后端的ip和端口会不同,解决跨域的办法之一就是配置代理。当然也可以用CORS,我们后续会讲到。

ng serve —proxy-conf proxy.conf.json

tsconfig-aot.jsontsconfig.json是Typescript的配置文件。

tslint.json是TSLint的配置文件。TSLint类似ESLint,用来lint Typescript代码的,检查代码风格和潜在的语法错误。

上面好多内容都需要一篇单独的文章具体介绍。例如TSLint、EditorConfig、Webpack、Maven、Yeoman、Angular CLI等等。有些内容(Pretteir)以前写过,但是还不算深入。有时间,我会把这些都补全。


欢迎关注我的公众号:全栈通途,后续文章会首发公众号。

欢迎关注订阅号,并加入全栈技术讨论群​www.zhihu.com

转载地址:https://blog.csdn.net/weixin_34759094/article/details/112219534 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:肌电信号的包络matlab程序_实验范式(PTB)和脑电信号采集(G.TEC)代码DEMO
下一篇:css多列布局划分为4列,CSS3 column多列布局介绍

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月04日 17时44分06秒