Skip to content

[异常]spwan接收数据异常 #28

@msojocs

Description

@msojocs

问题描述
打开配置"lazyCodeLoading": "requiredComponents"的项目,等待编译,报错:
[ WXML 文件编译错误]
lazyload parse wxml fail: SyntaxError: Unexpected end of JSON input(env: Linux,mp,1.05.2203070; lib: 2.22.0)

问题复现
复现问题需要进行的操作:

  1. 打开 文件较多的项目
  2. 等待编译
  3. 调试器报错

期望的效果
项目正常编译

截屏
image

版本信息 (这是必要的):

额外的信息

调用逻辑

devtools -> wcc.js -> wcc.bin

问题

经测试,wcc.js输出正常。
devtools是通过spawn调用wcc.js, 在这一步骤接收的数据缺失了。
例如:原数据 -- 1234567890 ,但收到的是 12345,数据缺失导致无法正常解析。

复现

手动编写spawn, 带上参数执行,获取到的数据不完整;
但是设定stdio: 'inherit'选项,输出是正常完整的。
不完整的数据大小是255.8KB,近似等于256KB,一个神奇的数值。
另外:使用spawn调用wine不带stdio: 'inherit'选项,可以得到正常完整结果。

简单测试代码

const fs = require('fs')
const file = fs.readFileSync('/path/to/wechat-web-devtools-linux/test/wcc/llw/2/wine.json')
process.stdout.write(file)
process.exit(0)

使用spawn调用,数据丢失

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions