1,终于找到xp下运行不了vscode的原因,有中文路径。
node/lib/module.js里会遍历各种目录,然后加到Module.paths里。 然后electron.asarrendererinit.js里也会增加一些目录 所以渲染进程的加载module,是会遍历各种目录的
vscodeoutbootstrap-amd.js里会转码再传给electron去load url。
问题的原因就在rendererinit.js里,这里会取window.location.pathname存到Module.paths里,
然后加载其他node模块时候用。然而这个pathname从blink里取出来是自带utf8编码的。也就是blink传给
v8,用的是单字节。实际上传给v8的字符串,如果是单字节会被认为是assci。所以一定要传2字节的。这样
nodejs从js里通过v8::String::WriteUTF8获取时才能正确识别。(这个过程在nodejs的默认js代码module.js里的stat函数)