第一周:匆忙的开始

78 阅读4分钟

概述

🌈 在一个很普通的下午,笔者突发奇想,要不要给自己整一个类似于周刊的东西,就像那些技术大佬每周都会发布一些周刊,分享一些非常有意思的技术或想法,包括其他的人一些技术文章(突然感觉像在套娃一样😂),除了技术方面的内容,还有一些其他方面的东西。于是,这个想法在本周开始落地。在该专栏里,我会分享每周了解或学习的一些技术,学习实践中的踩坑,以及一些个人想法,可能在这里面有些技术上的错误,遗漏,歧义之类的问题,欢迎大家在评论区留言,当然如果看了笔者的专栏后,如果您有什么想法或建议之类的,也可以在评论区留言。最后,希望该专栏可以一直持续下去。

学习

关于RESET风格

相关链接:icyfenix.cn/architect-p…

再此之前对一个RESET风格的理解服务端写的API接口,所使用的请求方法规范在:GET, POST, PUT, DELET之间,一般查询使用GET, 新增数据使用POST,修改数据使用PUT,删除数据使用DELETE,也就是经常说的CRUD,看完这边篇章,感觉自己还是太年轻了,我只能直呼🐂🍺。

入手AI学习

参考: inter.joyfulpandas.datawhale.club/Content/ch2…

一直都想着要学的AI,在本周开始了第一步,学习一波python。看了一下里面的文档,一来就是Numpy基础,然后就是一波数学知识,说实话,一开始确实很想劝退,但还是想磨炼一下。

适合javascript的python教程

参考:luckrnx09.com/python-guid…

这个是继上面AI学习中,对python基础知识的回顾,因为笔者本人就是前端开发出身,所以对于python的基础入手还是比较轻松的。这个文档推荐给想入手python的前端小伙伴作为基础教程吧。

踩坑

本周技术上踩坑,主要是自己在使用nestjs开发项目时,打包项目时出现的问题。

关于使用webpack打包nestjs项目

踩坑1:在nestjs项目中,使用了bcrypt第三方包实现用户登录密码加密的功能;打包时出现如果所示的问题

踩坑2:关于项目中使用TypeORM管理实体时,导入实体方式为:

entities: [__dirname + '/../**/*.entity.{ts, js}']

在开发环境下,可以正常运行;但当通过webpack构建整个项目后,出现下图情况,其原因是由于webpack没有将对应的实体类文件一同打包进去,导致在构建产物中执行失败。

踩坑1:解决方案

在node-pre-gyp的github中的issue看到了很多人关于这方面的踩坑,但是这里面所提出的解决方案并不多,更多的是疑惑为什么在这个仓库中会出现生产环境中使用开发依赖,当时我也没怎么注意,但是当我看到上面三个包都是写在开发依赖中时,我自己也挺懵的,迫于时间我目前只能采用一种回避的方式来解决我的构建问题;

将项目中的bcrypt替换为原来的crypto,基本上就OK了;

ps: 期待更好的解决方案~

除了上述粗暴的解决方案之外,我也尝试了其他的方案:

  • 在webpack中配置外部依赖:最终结果是失败的,项目构建完成后 ,无法正常运行(大家可以自己尝试)

  • 在nestjs项目中安装对应缺失的包,可以正常构建,但是还是无法运行(结果同上),同时这种方式其实本身就不好,安装了不必要的包在项目中;

踩坑2:解决方案

这个主要也是和webpack自己对应文件加载的处理,这些也是采用了最直接的方式,将所有的实体类文件都用import直接导入;

由于个人是直接通过 new Datasource()的方式初始化的TypeORM,所以没有使用上TypeOrmModule的autoLoadEntities属性实现自动导入,感兴趣的小伙伴可以了解一下。

其实项目中还有一个地方使用路径的方式去获取文件内容,就是在nestjs项目中配置全局变量,也就是使用ConfigService的过程中,初始化代码如下:

最终结果也是没有进打包文件,解决方式是直接将配置环境变量的文件copy到打包文件中,webpack配置如下:

提问

随着AI的发展,很多领域都在不断接入AI,作为前端开发出身的同学该如何去入手AI,大家有没有什么好点子呢?欢迎各位小伙伴在评论区留言哦~