在 js 中使用 ts 的 module alias 功能
介绍
js 代码中引用依赖的时候默认是使用相对路径,项目复杂后相对路径可能会用到非常多的相对层级,非常不方便,在 typescript 中可以在 tsconfig.json 配置的 compilerOptions 中配置 paths,实现别名功能:
{
"compilerOptions": {
paths: {
"@app/*": ["./src/*"]
}
}
}
在 js 中默认是没有这样的功能,但是可以通过第三方的包实现一样的绝对引用。
这里用到名为 module-alias 的包。
使用
首先在项目里安装这个依赖。
npm i --save module-alias
然后在 package.json 中进行配置
"_moduleAliases": {
"@app" : "./src", // Application's root
}
最后在代码头部引入依赖
require('module-alias/register')
原理
这个原理也比较简单,就是劫持 nodejs 原生的 module 模块。在模块初始化的时候,根据 package.json 中的配置将别名路径转换成相对路径存在数组中,然后通过改写内部的 _nodeModulePaths
和 _resolveFilename
两个方法,判断如果是别名开头的,就在前面的数组中找到别名对应的路径,再将路径进行拼合,还原出真实的引用路径。
参考
next-route-visualizer 包介绍
今天 github 上看到一个 next-route-visualizer 的包,可以用来绘制 next 站点路由图表。看了下代码,核心方法有三个。
- getRoutes 获取所有路由节点信息
- positionTree 确定路由节点的显示位置
- createNodesAndEdges 绘制节点和边的信息
将计算号的节点和边信息传递给 reactflow
,用 reactflow
包来绘制图表。
通过这个图表可以可视化的查看站点的结构,便于分析和构建出合理的网站信息架构,可以作为开发时候一个辅助决策的功能集成到系统中。
有兴趣的朋友可以学习了解一下。
参考
古老下载工具 WinWGet 介绍
在收拾硬盘存档的时候,发现一个古老的下载工具。文件的修改时间是2008年10月21日,创建日期是2011年2月5日。已经不记得是如何来到硬盘里了。下载器只是对 wget 工具的一个套壳封装,可以在 GUI 中设置 wget 的各个参数,非常简陋。
官方网站标识最后修改时间
Last change: $Date: 2005/03/28 02:14:01 $
网站是有模有样,可能在当时的年代也是挺正式的。不过这个软件的设计,太 Geek 了,开发者就是做了个 GUI 化,没有考虑普通用户使用的便利性。花了那么多时间开发这样的软件,不知道能不能给他带来收入,可能对他的技术成长有一些帮助,对外部的影响可能说是无。我的话,肯定不会去开发这样的软件,也对开发者花了无用功感到遗憾。原本他可以花这些时间给世界带来更多积极的影响。
近段时间一直在积极简化自己的生活,清理日常不必要的依赖,每天丢弃一件东西。趁着收拾硬盘,将其记录并送走。
参考
分享一个精简版Win10镜像
这个镜像是荒野无灯大神制作的,目前有一个已知的 Bug 是没办法通过快捷键切换中文输入法。
我主要用来安装在威联通 Nas 中。在系统中安装百度网盘等下载工具,江网盘中的内容同步到 Nas 中。再后来,百度网盘换到通过 alist 挂载。家里也买了一台台式机,Nas 中的系统太消耗资源,也就不再开起来了。
这里将收藏的系统镜像分享给需要的人。
wenbin
2023-01-21
小地方恶心的事情太多了。
农业银行办理提升一下日交易限额,莫名其妙给开通了交易短信提醒,自动扣了两块钱。
这个就两块钱,就算了。以后尽量少用农行服务好了。
农行真的是太鸡贼了,别的银行网银登录都是自动发送验证码验证手机后登录。农行的倒是反过来,我要给农行的系统发送验证码,系统验证收到了才给我登录。现实现象还是能一定程度反应农行服务差的情况,至少微信公众号里,农行公众号只有4个朋友关注,其他银行有的都有几百个好友关注。可能就是服务差,用的人少吧。
还有更甚的。
联通手机号码,自动开通一些奇怪的服务,缴的费用余额莫名消失。去营业厅找服务员核对,反馈说服务会帮你取消了,余额会给你弄回来,但是为什么会出现这种情况,说他不知道,不是他控制的。这要是没去趟营业厅,好几百块钱就没了,被谁中饱私囊了。
联通办理了 1000M 宽带,实际速度达不到了400M,找工作人员来查问题,查了说现在是 500M,速度不到400M是正常的???我的1000M怎么成 500M了?
其他诸如,去小店买东西,店主看是年轻人,价格就报高些,是老年人,价格就便宜些。我去买创可贴两块钱一个,我老妈去买创可贴两块钱十六个。
不胜枚举。
小地方生活需要有点耐心和平常心,不然容易被这些小事情搞的心情不好折寿。
用 bare rope 管理 dotfiles
现在 bash 配置文件里添加 dotfiles 装用的 git alias 配置。
CONFIG_PATH=$HOME/.dfh
alias dfh="/usr/bin/git --git-dir $CONFIG_PATH --work-tree=$HOME"
添加完后,source 一下进行加载。
使用 Automator 快速去除图片背景
看到说最新的 macOS Ventura 系统自带图片右键菜单去除图片背景的功能。macOS Ventura 尚在 beta 阶段,不建议贸然升级。想立即体验这样的功能实际上也很简单,只要写两行代码就可以实现。
NAS 篇一:威联通设置默认 shell 为 zsh
一、开启 ssh 功能
安装好威联通系统后,我们在设置里开启 ssh。
通过 ssh 登录到 nas 看下。查看下默认的 shell, echo $SHELL,默认的 shell 是 /bin/sh,看下版本号 /bin/sh --version
wenbin
2022-04-05
linux 系统缺少 ifconfig 等网络工具,可以通过安装 net-tools 包来获取。对威联通而言,可以先安装 Entware-std 包管理器,然后通过 opkg 包管理器安装 net-tools。
opkg update && opkg install net-tools