概述
🌈 在一个很普通的下午,笔者突发奇想,要不要给自己整一个类似于周刊的东西,就像那些技术大佬每周都会发布一些周刊,分享一些非常有意思的技术或想法,包括其他的人一些技术文章(突然感觉像在套娃一样😂),除了技术方面的内容,还有一些其他方面的东西。于是,这个想法在本周开始落地。在该专栏里,我会分享每周了解或学习的一些技术,学习实践中的踩坑,以及一些个人想法,可能在这里面有些技术上的错误,遗漏,歧义之类的问题,欢迎大家在评论区留言,当然如果看了笔者的专栏后,如果您有什么想法或建议之类的,也可以在评论区留言。最后,希望该专栏可以一直持续下去。
学习
关于RESET风格
再此之前对一个RESET风格的理解服务端写的API接口,所使用的请求方法规范在:GET, POST, PUT, DELET之间,一般查询使用GET, 新增数据使用POST,修改数据使用PUT,删除数据使用DELETE,也就是经常说的CRUD,看完这边篇章,感觉自己还是太年轻了,我只能直呼🐂🍺。
入手AI学习
一直都想着要学的AI,在本周开始了第一步,学习一波python。看了一下里面的文档,一来就是Numpy基础,然后就是一波数学知识,说实话,一开始确实很想劝退,但还是想磨炼一下。
适合javascript的python教程
这个是继上面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,大家有没有什么好点子呢?欢迎各位小伙伴在评论区留言哦~