2021-04-22
[2021-12-28]新开 tab 页面, sessionStorage 状态
[2021-10-28]企业微信工作台应用页面的控制台
[2021-10-28]el-table 中使用 fix column 后, 如果 row 高度发现变化, fix column 不会变化, 导致同一行布局割裂
[2021-09-29]el-table safari text-overflow 失效
[2021-09-28]curl 进行 ES 查询操作
[2021-06-29]vuex typescript support
[2021-06-25]This Set-Cookie was blocked because it was not sent over a secure connection and would have overwritten a cookie with the Secure attribute. [2021-06-16]eggjs 模板初始测试用例跑不通Error: expected 200 "OK", got 404 "Not Found"
[2021-06-09]tsexport * as <name>
语法
[2021-06-04]npm 包发布调试
[2021-04-22].npmignore 忽略文件不起效
[2021-12-28]新开 tab 页面, sessionStorage 状态
以下情况都是在 chrome 下测试所得, 不同浏览器表现可能并不一致
新开方式(新打开的 tab 都是同一个域) | 新 tab 中 sessionStorage 是否保留上个 tab 设置的数据 |
---|---|
<a href=”xxx” target=”_blank”> | 否 |
<a href=”xxx” target=”_blank” rel=”opener”> | 是 |
<a href=”xxx” target=”_blank” rel=”noopener”> | 否 |
window.open(‘xxx’, “_blank”) | 是 |
[2021-10-28]企业微信工作台应用页面的控制台
Mac: shift + ctrl + command + D
-> 帮助 -> 开发调试选项 -> 开发调试选项 -> 开启 Webview 元素检查
Windows: shift + ctrl + alt + D
[2021-10-28]el-table 中使用 fix column 后, 如果 row 高度发现变化, fix column 不会变化, 导致同一行布局割裂
待补充
[2021-09-29]el-table safari text-overflow 失效
待补充
[2021-09-28]curl 进行 ES 查询操作
简单查特定 id
curl '127.0.0.1:9200/${index}/${type}/_search?q=_id:xxxxxx&pretty'
复杂查询条件
curl -X GET "127.0.0.1:9200/${index}/${type}/_search" -H 'Content-Type: application/json' -d'
{
"query": {
"match_all": {}
}
}
'
[2021-06-29]vuex typescript support
使用 typescript + vue 进行开发, 需要补充 vuex 的类型支持, 翻了一下开源方案
翻到了这篇文章 https://betterprogramming.pub/the-state-of-typed-vuex-the-cleanest-approach-2358ee05d230
对文章内提到的库进行了简单实践, 目前暂且选用 vuex-module-decorators
[2021-06-25]This Set-Cookie was blocked because it was not sent over a secure connection and would have overwritten a cookie with the Secure attribute.
一个站点同时可以通过 http 和 https 访问
如果当前浏览器之前曾经通过 https 访问过,并且有 set-cookie header 返回,一般情况下,如果服务没有做特殊处理的话,https 响应的 set-cookie header 都会带 secure 标识位
这个时候清掉 cookie, 再通过 http 访问,这个时候响应的 set-cookie header 会被 block 掉
详细的情况可以看下这个问题 https://stackoverflow.com/questions/52763345/browsers-ignore-set-cookie-response-header-if-we-try-to-set-a-cookie-which-was-s
[2021-06-16]eggjs 模板初始测试用例跑不通 Error: expected 200 "OK", got 404 "Not Found"
eggjs 应用初始化后, 安装依赖完成运行 npm run test
运行初始化模板的测试用例报错通不过
1) test/app/controller/home.test.ts
should GET /:
Error: expected 200 "OK", got 404 "Not Found"
最后定位到的原因是底层依赖的 koa-compose 版本不一致
导致 koa-compose 版本不一致的原因是, 我们公司有自己的私有 npm 源, 私有源上 koa-compose 的最新版本是 4.2.0, 而官方源和淘宝源上最新的版本是 4.1.0
版本问题是因为 koa-compose 发布版本后又提交了一个 deprecation notice
, 具体可以看下这个 issue https://github.com/koajs/compose/issues/106
使用官方源和淘宝源安装时并不会安装到已经 deprecation
的 4.2.0 版本, 而私有源这块行为表现有点不一样
至于 koa-compose 的 4.2.0 版本的特性, 其实就是新增了一个方法来打平 middleware
数组
[a, [b, c], b] => [a, b, c, d]
不过因为这样改变了 middleware 的引用, 导致 koa-compose dispatch 执行时, 并不能拿到完整的 middleware 数组
正是因为 koa-compose#4.2.0 的这个特性, 导致 @eggjs/router 中间件加载失败, 导致测试用例运行失败
至于为什么会出现跑测试用例时中间件加载有问题,但是正常启动(开发或生产)中间件加载却没问题?
猜测是 egg-mock 库关于 app mock 的部分, 并没有完全模拟正常 egg app 启动, 可能在中间件加载相关的顺序或者逻辑上有差异导致, 这部分实在太碎了, 没有接着定位下去
[2021-06-09]ts export * as <name>
语法
解决方案请翻阅 https://github.com/TypeStrong/ts-loader/issues/1121
原因是 tsconfig 中的 compilerOptions.module 配置有问题
[2021-06-04]npm 包发布调试
# 要发布的npm包下执行
npm pack
# 用于验证npm包的项目下, 安装npm pack命令生成的tgz
npm install /path/to/npm/package/tarball.tgz
[2021-04-22].npmignore 忽略文件不起效
今天定位了一个很无聊的问题, 直接说结论
就是 npmignore 是不会处理以下文件名的
readme | copying | license | licence | notice | changes | changelog | history |
加入你有一个使用 ts 开发的 npm 包, 在发布时需要编译生成对应的 js 文件并使用 npmignore 来忽略 .ts 文件
如果刚好, 你的文件名是 notice.ts, 那这个文件就不会被忽略, 实际的发布效果是, npm 包中既有 notice.ts, 也有 notice.js
我查了下文档, 发现确实有说明, 部分文件是 永远不会忽略 的, 但文档和代码实现有差异, 大家留个心眼即可