React v0.3.0在本地调试的问题

在阅读源代码时,不免想要实际调试一下其具体的执行过程。由于React v0.3.0的编译配置有些老旧,直接按照ReadMe.md中的描述,是无法成功编译的。会导致出错的原因有两个:

一是,grunt命令工具集更新后,原来的文件遍历、枚举调用有了变化,之前的脚本在执行时会出错;二是依赖的库esprima名称有些小变化,如果安装了更新后的版本,需要手动把名字跟着改一下。

由于Grunt工具我并不熟悉,在尝试修复问题没有成功之后,我选择了直接去github上下载编译好的React v0.3.0的文件,节约了不少精力。

把examples目录和build目录配置到nginx中,就可以在本地查看react自己的示例代码了。在浏览器中使用正确的url打开examples/basic/index.html,可能会发现控制台有报错,这是因为启用了严格模式之后,如果event对象的targe属性是只读的,执行

normalized.target = textNodeNormalizedTarget;

就会在控制台报重复抛出异常。为了阻止这种错误提示重复出现,可以修改源代码,把这行代码修改成

Object.defineProperty(normalized, "target", {
      value : textNodeNormalizedTarget
    });

这样就不会报错了。

Show Comments

Get the latest posts delivered right to your inbox.