node
文章平均质量分 85
追逐、
这个作者很懒,什么都没留下…
展开
-
一个 Nodejs 循环依赖实例+解决
背景一个简单的纯typescript+nodejs项目,在一次编译运行代码时,遇到一个奇怪的报错:TypeError: Class extends value undefined is not a constructor or null调试堆栈信息,发现是一个类继承的父类是空。在多次尝试调试,考虑场景,查找资料的情况下,确实论证为nodejs循环引用。但是我觉得我的使用场景是很正常的场景,觉得nodejs在这块的处理确实有点奇怪。代码结构classA:import log from './原创 2021-09-27 14:37:37 · 1304 阅读 · 0 评论 -
解决typescript 在 node.js 下使用别名(paths)无效的问题
背景纯nodejs环境,直接使用tsc编译nodejs。源码目录是src,编译输出目录为bin。代码结构如下:srcutilsa.tsb.tsconfig…bintsconfig.json在其他深层次目录引用utils或者config下的文件时,总是要写一长串的'../../../../',还需要数数。这显然是不能接受的。用过webpack开发的小伙伴们,想想别名功能,typescript这种成熟框架不可能没有。于是百度一波,得到如下配置:{ "baseUrl"原创 2021-04-08 22:19:52 · 9976 阅读 · 5 评论 -
使用虚拟node_modules 对webapck前端CI重构-150%的速度提升
项目首次构建无修改二次构建修改文件二次构建不采用任何缓存211211211仅采用文件缓存23141.893.4采用文件缓存+babel -loader缓存2304293原创 2021-03-01 22:20:22 · 383 阅读 · 0 评论 -
Webpack 插件扫盲系列(五) PnpWebpackPlugin和ModuleScopePlugin
一、背景什么是Pnp?可以详见本人的这篇博客。Pnp实际是yarn的一个特性,所以说如果你的项目中不使用yarn构建,那就可以不用使用这个插件。其次,即使你使用了yarn,如果不通过文中所述的开启pnp的方法去启用pnp,那这个插件对你来说也是无用的。二、使用大家知道webpack的reslove模块是用来配置模块解析规则的。如果你的项目中启用了pnp,那么想象一下,最基本的,就是你没有node_modules文件夹了。你的所有的依赖配置都会存储在.pnp.js文件中(实际依赖项安装在系统根目录),这原创 2021-01-03 10:20:20 · 3088 阅读 · 0 评论 -
npm 与 yarn 发展史
一、 javascript 中包管理的历史npm 出现之前:前端依赖项是保存到存储库中并手动下载的2010:npm 发布并支持 nodejs2012:npm 的使用量急剧增加——主要是由于 Browserifys 浏览器的支持2012:npm 有了一个竞争对手 bower,它完全支持浏览器2012-2016:前端项目的依赖项数量成倍增加2012-2016:构建和安装前端应用变得越来越慢2012-2016:大量(重复的)依赖项存储在神奇的 node_modules 内原创 2020-12-31 15:49:49 · 1004 阅读 · 0 评论 -
一次血的教训 记npm package-lock.json导致的腥风血雨
一、问题产生一次偶然的机会,发现SMCbase仓代码库中,sdk构建和reactjs构建仓库中居然有package-lock.json,这两个本该在编译时生成的文件,对于有强迫症的我,自然看不下去。于是果断一个MR,删除了这两个package-lock.json。以为自己做了好事的我还在沾沾自喜,殊不知这给我带来了2天苦逼的问题定位…二、过程&解决MR合入的当日,21.0主分支base仓构建失败,CIE大佬找到我,跟我说是前端base仓构建的问题,我心中一惊,立即翻看当天合入的MR,发现能影响原创 2020-09-10 21:50:19 · 9904 阅读 · 1 评论