最近team收到通知,安全团队扫描WEB是遇到有人提交了.DS_Store文件到公司CDN,于是告之告知大家注意这个文件,不要提交。

那问题来了,为什么这个文件会影响安全,我们又如何最大程度规避这个呢,这里总结下。

.DS_Store

先了解下该文件 .DS_Store是Mac系统中产生的一个隐藏文件,记录文件或目录的一些自定义属性

比如,这里我创建一个空文件夹,创建一个文件,然后命令行浏览会看到.DS_Store

阅读全文 »

Surge Module之前一直忽视,我也安装过一些别人贡献的module,但没有仔细对比,体会作用。最近看了些资料,经过实践,觉得有些场景下非常适合使用,顿时觉得真香。

module介绍

关于module先介绍几点,方便了解。

  1. 用官方的话说module即给当前profile打patch补丁,因此可以是配置的一部分
    • 有限支持Rule,MitM等,具体看这里
  2. Module的配置优先级高于当前Profile,且多个Module按照顺序执行,即后覆盖前
  3. Module开启状态并不进行设备间同步,当然配置本身是会同步
  4. profile现在支持include profile片段了,比如可以将rule部分单独一个文件,然后在主profile包含即可。但要了解profile片段必须是完整的部分,不存在主profile/profile子文件都有rule的情况。这点与module还是不同

Module修改

阅读全文 »

开发时,有时会遇到 ESLint: Component definition is missing display name (react/display-name),这个原因是什么及如何处理呢,这里讨论下。

react/display-name

组件添加display-name唯一的好处是服务于调试,如下图,在react拓展程序调试时会方便我们找到对应的组件,从而再找到文件。

但日常开发,很多时候我们没有明确写display-name,那这些名字如何来的,因为react会帮我们赋值,一般组件创建有两种方式

  1. 函数,函数名称即display-name
  2. 类,类名称即display-name
阅读全文 »

由于历史原因,项目代码中还有一些函数使用arguments,而同时公司定下的lintRule对于arguments只是warning,因此有些还是没人去修改。

那么arguments还有必要存在吗,这里总结下

arguments vs rest parameters

  • arguments是类数组,但并不是数组,因此没有map,filter等方法,而rest parameters是数组
  • arguments的迭代器方法IE下不支持
  • arguments是es3时的规范,而rest parameters是es6
  • rest parameters可以用于获取函数所有参数,可以完全提到arguments

综上,可以确定我们完全可以使用rest parameters来解决参数获取

prefer-rest-params

阅读全文 »

一次,CD部署时WEB项目打包的TS最终编译为了ES3,而ES3下的JS代码最终导致了白屏。

事故直接原因

项目下的业务组件库没有执行TSC配置的target,而我司封装的构建打包工具在进行编译打包时,会优先使用找到的第一个TSconfig配置,于是主项目的ES5被忽视,而业务组件库又因为没有配置target,最终执行了缺省的TS target配置值-ES3。

要知道TS只是进行语法编译,并不进行polyfill。

阅读全文 »
0%