use puppeteer-core to replace puppeteer

puppeteer官网上有puppeteer-core的介绍,只是简单提及了一下
有亮点不同

  1. 不会下载Chromium.
  2. 不会识别一堆以PUPPETEER_开头的环境变量。

其他的地方都一样,按说只要把所有require(puppeteer)的地方都换成require('puppeteer-core')即可。

针对绝大多数用户,其实都已经安装了chrome,每次安装为了puppeteer都要下载一个巨大的Chromium,在国内的网络环境下十分耗时。

可问题是一些依赖的第三方package里面用的是require(puppeteer)

这种情况推荐使用modules-alias工具登场。

用别名的方式将系统中的puppeteer
都置换为puppeteer-core

运行例子: jest-with-puppeteer-core

发表在 ecmascript, jest, puppeteer | 留下评论

conventional-changelog不能生成最新日志的情况

最近遇到conventional-changelog不能生成最新变更日志的问题。
过排查发现,是因为gitflowconventional-changelog一起使用时,应先升级package.json中的version,生成changelog之后再进行gitflowrelease操作,否则最新的git标签与package.json中的version相同,则不会生成changelog

发表在 ecmascript | 留下评论

eslint与prettier的集成的错误认识

我的编辑器里,既装了eslint的插件,也装了prettier的插件,然后,这两个工具都其作用并能自动修正文件了,还有什么问题呢?

我之前的eslint配置是这样的

extends: [
'airbnb',
'prettier',
],

prettier有其自己的配置文件,在eslint中通过eslint-config-prettier一起生效,使这两个规则不会冲突。

问题在于,每次文件保存,eslint和prettier会先后两次修正文件,引起两次写操作,结果可坑会导致开发环境webpack或jest运行多次。

之前没有在意这个细节,最近有空打算彻底解决一些之前觉得不对劲的地方。

正确的配置应该是,添加eslint-plugin-prettier,并且在编辑器中禁用prettier插件,使文件保存是,仅eslint修正即可,eslint通过这个plugin识别prettier.config.js配置来集成规则。

新的配置如下


extends: [
'airbnb',
'prettier',
],
plugins: ['prettier'],
rules: {
'prettier/prettier': 'error'
}

发表在 ecmascript | 留下评论