翻译 | Bash 扩展通配符 (ExtGlob)

英文原文: Bash Extended Globbing作者: Mitch Frazier摘要: Bash 扩展通配符的科普文章。 在 Bash 中,通配符称为 路径名扩展 (pathname expansion)。路径名扩展有时也被称为 globbing。当您将它们作为命令的一部分键入时,路径名扩展将“扩展”*, ? 和 [...] 语法,例如: 123$ ls *.jpg # 列出所有 .jpg 文件$ ls ?.jpg # 列出文件名

Promise 并发控制

Promise 并发,往往都直接 Promise.all 但如果我想控制并发为 5 怎么破? 问题分析因为 Promise 在插件实例的时候,已经开发执行并发任务了。所以我们没办法在 Promise 实例上做手脚。那么只能在 Promise 实例之前,限制创建 Promise 实例的速度。 再有,采取什么形式限制,也是个问题。我一开始想的是队列(queue) 模式。创建一个异步队列类,统一管理异步队列,这样在添加异步任务的方法上做限制即可。 1234567const q =

Promise 错误处理

Promise 为 js 的异步流程控制处理迈出了一大步。但我一直没用好错误处理。 抛出 error生成一个 Promise 实例有两种方式,一种是 new Promise 还有一种是直接 Promise.resolve 或 Promise.reject。但在 Promise 中抛出错误只有 throw 和 reject 之分。 12345678910111213141516171819202122232425// 创建实例时拒绝new Promise((resolve,

简单爬虫实例 - 爬取B站看板娘服装资源

最近又在网上看到一个 node 爬妹纸图的东西,去看了下源码,写的其实太啰嗦了。其实 node + got + async/await 才是王道。 由于之前做了个 B站看板娘集合 的东西,所以就写个爬虫爬了下直播间。 数据分析先分析下B站直播间的情况,打开全部直播页面 https://live.bilibili.com/all 看下 Network 模板。很容易发现他的数据是 ajax 过来的 https://api.live.bilibili.com/room/v1/ro

分分钟写一个 rollup 小插件

rollup,别问我这是什么鬼,自己去百度不会。// 强行单押rollup,真的好用到飞,打包es6模块必备。// 单押x4 勒是雾都! 前话其实不用去对比 rollup webpack parcel 谁更好,谁更强。所在次元不同,何必呢,大家都可以好好相处的。 我喜欢用 rollup 打包模块,因为他专注于 es6 模块打包。真的好用到哭,打包完的代码非常完美,干净简洁,整体性强,是可读级别的。大名鼎鼎的 react, vue 就是 rollup 打包的。 可见对于模块打

在 vscode 中统一 vue 编码风格

vetur 很多人知道,但在 vscode 下没办法格式化 .vue 里的 html, js 很是头疼,代码风格无法统一。所以不少人直接拆分开,然后在 .vue 中引入,虽然方法很好,但这有违 .vue 单文件组件的初衷。 本文详细介绍 vscode 下使用 vetur + prettier + eslint 来统一 vue 编码风格。 vetur 插件vetur 经过多个版本迭代,算是目前 vscode 下最好用的 vue 插件了,甚至支持 ts, webpack ali

webpack3 编译兼容 IE8- 的正确姿势

接上一篇《关于新版本 webpack gulp 兼容 IE8- 的正确姿势》踩了几次坑后,重新整理下方案。 遇到的问题上一篇中的方法在 webpack 更新后,uglify 缓存地址也发生了变化,需要重新找地址。后来测试发现不论是 uglify-js2 uglify-js3 都是支持 IE8 兼容处理的。但在 webpack.optimize.UglifyJsPlugin 中加配置参数却无效。(webpack 的锅)总不能每次都手动去找 webpack 缓存路径进行劫持吧,

node 请求使用动态 hosts

开发中使用 hosts 司空见惯,但如果一个需求,用户表单输入 hosts 后台使用这个 hosts 去请求,如何用正确的姿势去请求呢? 如果每次都修改 hosts 文件,那,,也许,,不太科学,如果是个临时 hosts 呢?hosts 文件会越来越臃肿,不推荐。 在百度,谷歌无果后 (也许关键词不对,反正没找到),自己尝试了下,却发现异常简单。 hosts demo假设我们要添加如下临时 hosts: 1192.168.1.10 dev.domain.com node 代

塞尔达传说 荒野之息 DLC 更新失败后

塞尔达 DLC2 都已经更新了,让 1 都没购买的我情何以堪。然后淘宝淘了 $20 给 eShop 充上之后就购买了 DLC,接下来就是等待下载了。 PS: 淘宝 $10 = ¥60,有的店新用户¥58。PS: 最好别在美服买游戏,尽量日服购买,否则,欲哭无泪。 非常不幸的遇到下载失败,之前购买《我的世界》时虽然下载慢,但好歹也下载成功了。 失败后,进入游戏,没有 DLC 字样,点击 Downloadable Content 返回后提示下载成功,请重新启动游戏,可是启动

JavaScript in VS Code

众所周知 VS Code 是借助 d.ts 对 js/ts 进行 智能感知(IntelliSense) 精准提示的。官方维护着一个庞大的 DefinitelyTyped 囊括了流行的模块的 d.ts。所以你会发现不论是 js 还是 ts 都可以为流行库进行 智能感知。如果是 ts 项目,也许大家都会操作,但 js 项目想自定义 d.ts 实现 智能感知 怎么破? 官网文档JavaScript in VS Code 百度无果后,在官网翻到了这个,如果英文不错的,推荐直接看文档