Jiaxun Wei

Results 38 comments of Jiaxun Wei

@sakitam-fdd 一直想做但是没用空做系列。。 你觉得先在改主题比较麻烦,和拆分bisheng-core的关系在哪里,有什么建议吗?

@ahungrynoob 我目前的思路可能不太一样,我现在的想法倾向于bisheng-core主要解决从 react 移植到其他框架的成本问题。 bisheng目前的md2json这部分,方案上和webpack耦合度很高,拿不出来。 就我目前尝试的一些结论来看: - 如果想要和webpack解耦,抽象就会比较细碎,`bisheng-core`暴露出来的API会不太像一个整体; - 如果带着webpack一起出来,可以很方便的移植到其他框架,缺点是包的东西太多“可能”不够灵活。 目前我的思路,越来越倾向于后者。当然,欢迎提出宝贵意见:)

还有几个问题,就是`bisheng-data-loader`的实现,里面依赖了`bisheng-theme.config.js`的数据结构;`utils/source-data.js`被很多其他地方依赖,理想态`bisheng-core`应该包括的`bisheng-data-loader`和不应该包括的`index.js`都依赖了它;markdown to jsonml其实是在`bisheng.config.js`默认值中添加的`transformer`完成的等等。 我没想好这部分该怎么去抽象,或者换个问题,我现在如果要实现一个`vue`版的`bisheng`,我要做的必要的是哪些工作?如何设计API,编写文档,能够让其他框架的用户快速移植过来? 从“洁癖”的角度来说,我完全同意从`loader`、`transformer`这几个地方切一刀,webpack config等丢在外面,但是我的初衷是为了便于其他框架复用,从这个角度看,别人移植也会写一样的 webpack config,我觉得这没什么意义,目前`bisheng.config.js`开放的API来看,我想不到别的框架会遇到什么解决不了的问题。 所以我有点担心“洁癖”会导致“过度设计”,如果我的目标是“移植”,那么我需要的就是“最上层的封装”。这就是我目前更倾向于后者的原因。

目前你说的这些,无论是什么方案,都会切掉的,这个放心。我现在纠结的是webpack放到哪一层的问题。 - 方案一:webpack构建流程丢出去,但是迁移成本高,也看不到什么意义; - 方案二:bisheng-core 仍然持有 webpack 构建流程,迁移成本应该可以控制的很低。

不是这个问题。。。 是 `src/index.js` 这个文件里面,把 webpack 是作为一个函数被调用了,那么拆分 `bisheng-core` 之后,是由`bisheng`来调用这个函数,还是`bisheng-core`调用这个函数。

@ahungrynoob 这样的话,其实丢掉了bisheng做的很多很棒的功能(如ssr),做减法做成了一个 webpack loader的程度。 我在 eocky 上拉了一个 pr,虽然不太想提这种 WIP 的代码,但是觉得还是这样好说明一些:https://github.com/LeuisKen/eocky/pull/4 后续咱们之间的讨论可以到这个pr下面,不打扰到其他人,因为我现在的思路其实还没清晰到能拿出来讨论的水平😂 等方案二搞出来的时候,我也会拉一个pr,供大家讨论

@benjycui @afc163 @yesmeck 对`bisheng-core`的拆解,已经有了初步的工作,目前形成了两个思路,欢迎讨论: **方案一:** 不接管 webpack 流程,拆出一些 utils 来。 这个方案是我一开始的思路,但是做到一办感觉不靠谱,贴出来主要是为了讨论。我难受的地方有以下几点: - 依赖模型复杂:bisheng 其实包含了很多个入口。`src/index`、`bisheng-data-loader`、`transformers/markdown`,这些模块的依赖关系更多是使用`文件路径`的方式来依赖的,这导致了从这三个入口下去的依赖关系,是一张图,不是干净的三棵树——直接结果就是不能很干净的拆开; - 不方便迁移:这些函数没法构成一个体系,不成体系就没有办法产出易用的API和文档。 review 地址:https://github.com/LeuisKen/eocky/pull/4 **方案二:** 接管 webpack 流程,暴露 `dev` 和 `build` 两个函数,把命令行的实现交给`bisheng`这一层,包括 `deploy` 也丢出去。 基本上解决了上面的问题,虽然方案是“既然拆不开,就都放一起”,但是足够易用了。 review...

这不就是我前段时间想做的事情嘛 https://github.com/LeuisKen/san-touch-tap/blob/master/src/index.js 但是后来和 @jiangjiu 觉得其实也没啥意义,fastclick挺好的,就算了

I run the following code in these browsers: ```js ({[(console.log(1), 'x')]: (console.log(2), 1)}) ``` In Chrome 72.0.3626.109 gets: ![image](https://user-images.githubusercontent.com/7701575/52935861-8372e700-3395-11e9-8560-c4a1cc5366e6.png) and Safari 12.0 (14606.1.36.1.9) gets: ![image](https://user-images.githubusercontent.com/7701575/52935937-be751a80-3395-11e9-9deb-96d10cdc08f3.png)

Any progress? I met the same problem when using @babel/traverse