chenxiaochun

Results 81 issues of chenxiaochun

![image](https://user-images.githubusercontent.com/1744713/33695692-8f10ebb2-db39-11e7-8209-d8c3f31b604a.png) I want to know the meaning at below values, thanks very much. ``` m n x y ```

jdfx对文件路径的拼写方式进行了一些调整,这里对各种情况进行一下说明。假设你的`config.json`中有如下配置: ```json { "projectPath": "jdf-test" } ``` 项目的目录结构如下所示: ``` jdf-test ├── config.json ├── html └── index.html ├── js └── a.js └── b.js ├── css └── style.css └── i └── icon.png...

help wanted

**注意:此说明仅适用于`html`、`tpl`、`vm`和`smarty`文件中的字符串拼接情况,并不适用于`js`文件中的字符串拼接** 在html文件中拼接字符串时推荐使用以下格式,否则会产生输出html格式错乱的问题。 ```html 京东商城 ``` 不推荐使用以下任何一种格式: ```html 京东商城 ``` ```html 京东商城 ``` 你问我它们之间有什么区别?其实就是单双引号位置的区别。`双引号`放在字符串最外层,里面如果需要引号请使用`单引号`。 问题原因是由于[cheerio](https://github.com/cheeriojs/cheerio)的处理机制引起的,具体解决方案正在排查。感谢[loveky](https://github.com/loveky)同学的反馈。

help wanted

```css .test { background :url(//img12.360buyimg.com/da/jfs/t1708/343/1355811714/2006/812516d1/55e511a9N42e564c7.jpg) no-repeat left center; .a{ width: 235px; height: 100px; } } ``` 当你的css文件有以上类似代码时,输出时有可能会抛出以下错误: ``` [11:27:14] ERROR Error: Invalid CSS after " .a": expected ")", was "{"...

help wanted

一直以来,移动端的页面开发调试就是一个麻烦事情,想要实时预览页面效果并且debug更是很麻烦。jdfx也在努力解决这个问题,并且内置了`browserSync`,使您开发,预览,调试简单到只需一条命令即可。 ### 1、安装[猎豹wifi](http://wifi.liebao.cn/) 这个不用多说,安装就是了。注:如果电脑和手机处于同一个局域网中,可忽略`1,2`两步。 ### 2、连接手机 开启一个热点,并把手机连接到此热点上。 ### 3、使用jdf调试 * 执行`jdf b -o`命令打开项目列表,用手机扫描右上角的二维码,即打开一个和电脑上一模一样的页面。 * 此时,你无论操作电脑还是手机,它们的响应都会是同步的。包括:切换目录,滚动页面等。 * 你在电脑上编写代码,只要保存,手机上的页面就会实时刷新。 * 现在还等什么,愉快的开始写代码吧。 ### 4、内置的weinre * 细心的你会发现,在浏览器中默认打开的是下面第一组`External `对应的地址。如果你在浏览器中输入`UI External `对应的地址,会打开一个很漂亮的操作界面。 * 在左侧找到`Remote Debug`菜单,点进去开启`Remote Debugger...

help wanted

close https://github.com/ant-design/ant-design/issues/32061

### 当前的问题是什么? 首先,让我们先快速回顾一下在一个独立项目中的`hoist`工作机制: 为了减少项目中的依赖包冗余,很多项目开发者会使用某种`hoist`机制将公共的依赖包提取出来,并将其展开集中到同一个目录下。 下图中左边的示例是一个常见的普通项目依赖树结构: ![](https://imgkr.cn-bj.ufileos.com/66fe6ed2-d4ec-4316-908f-adafb344989a.png) 通过使用`hoist`机制,我们可以尽可能消除对`[email protected]`和`[email protected]`两个包的重复依赖安装,同时还不会改变对`[email protected]`的依赖维护关系。而我们知道,大多数模块爬虫、loaders和打包器都是通过遍历项目中的`node_modules`来定位依赖包的。 那么在`monorepo`类型的项目中,引入了一种新的层级结构,它不再需要必须使用`node_modules`来建立模块间的依赖关系。在这种项目中,模块可以分散在项目中的多个位置: ![](https://imgkr.cn-bj.ufileos.com/77067ed2-35be-486e-910d-4262be7b5a74.png) `yarn workspaces`可以通过将公共依赖包提升到所有子项目的父目录的`node_modules`中,以实现共享这些依赖包的机制。而且如果这些依赖包彼此之间也有依赖关系时,使用这种优化方式的好处会更优。 ### 无法找到模块! 并不是所有的模块爬虫都会遍历模块的软链接。因此,有可能我们在每个子项目中进行编译打包时,会出现模块无法找到的情况。 看上图右侧的项目结构,我们在实际打包时,可能会出现以下情况: * 在`monorepo`根目录无法找到`[email protected]`依赖包。因为`[email protected]`存在于`package-1`的`node_modules`下,而它是以软链接的形式存在于`monorepo`根目录的`node_modules`下。 * 从`package-1`无法找到`[email protected]`模块。因为`[email protected]`实际存在于`monorepo`根目录中的`node_modules`下。 在这个`monorepo`项目中,依赖包可能存在于任意位置。它就需要模块爬虫能够遍历每一个`node_modules`目录才可能找到对应的模块。 ### 为什么这些模块的位置不能固定下来呢? 事实上有很多开发都提出过此类问题的解决办法,例如:可以建立多个根目录、可以自定义模块映射、更智能的模块遍历模式等。但不管怎样,还是有一些原因使得问题难以解决: 1. 并不是所有的第三方库都会适配 monorepo 环境。 2. js 有大量的第三方库。而这些大量的第三方组成的工具链也就成了最”薄弱“的一环。因为只要有一个模块没有进行适配,就可能导致整个工具链都没法使用了...

[Antd4](https://ant.design/index-cn) 这个版本已经发布有很长时间了。但是,你应该还有些老项目依然在使用 antd3。虽然你垂涎于 antd4 的新特性,但是由于这些原因你又没办法直接升级: 1. 老项目依然在更新迭代,直接升级 antd4,会导致大量代码需要重构。尤其是涉及到 Form 表单相关的代码 2. 使用 antd 官方提供的[升级工具](https://ant.design/docs/react/migration-v4-cn#%E5%BC%80%E5%A7%8B%E5%8D%87%E7%BA%A7)。但它会生成很多冗余的胶水代码,这个对于一个代码洁癖者来说,是很难忍受的一件事情 由于这几个原因,我们走了另外一条途径,就是让项目中同时存在 antd3 和 antd4 两个版本。也就是说,将 antd 的两个版本都同时引入到项目中。不改动之前 antd3 的老代码,新的页面使用 antd4 来开发。然后在空余时间再慢慢改造老的代码,直到将 antd3 的相关代码慢慢改造干净为止 但是,将两个版本都引入进来,会存在下面几个问题: 1. Antd4...

有这样一种场景,在使用 [TreeSelect](https://ant.design/components/tree-select-cn/) 组件进行多项选择时,想等用户选择完成之后,鼠标点击其它区域隐藏下拉层时,再去触发下一步的操作。 Ant 的官方文档并没有提供相关的方法,后来经过 issue 询问,官方的开发者给了一个此组件的内部方法: ```js onDropdownVisibleChange(visibled){ console.log(visibled) return true } ``` 参数`visibled`用来判断当前组件下拉层的显示状态: * `false`表示当前下拉层为隐藏状态 * `true`表示当前下拉层为显示状态 此方法最后的`return true`,表示允许下拉层进行显示/隐藏切换。如果`return false`就是禁止当前下拉层的切换操作。具体你可以自己尝试一下。 ![image](https://user-images.githubusercontent.com/1744713/41409752-d9a794a4-7009-11e8-8ebb-b78e31b994d9.png) 此时,解决上面我们提到的问题,就会变得非常简单: ```js onDropdownVisibleChange(visibled){ if(visibled === false){ //用户隐藏了下拉层,进行下一步操作...

Ant Design