引言
最近在写一个nodejs的项目,由于对这个技术不是很熟,所以遇到一些问题无从下手,通过度娘和谷哥都无法找到我想要的答案,怎么办呢?
静下心来思索了一会,想到了AI,或许TA可以帮助我们解决问题,说干就干!
问题定位
当然我遇到的问题是经过了自己的一番排查的,不能完全根据错误提示来问AI,错误描述信息如下:
{"errno":-4058,"code":"ENOENT","syscall":"spawn /bin/bash","path":"/bin/bash","spawnargs":["-c","tsx F:\\xxx.ts"]}
错误描述全局搜索,定位到这个运行报错的原因就是因为spawn执行命令的地方。
推测是因为在macos、linux 与 windows、sunos上面是不一样的,我们来问问AI,cross-spawn在windows平台是怎么用的?
问AI
首先了解一下cross-spawn在windows平台是怎么用的,一看就发现了,代码中的用法和这个不一样,那肯定是因为平台不同的原因导致的了。
将错误信息告知AI,让AI帮我们分析问题问题原因
让AI帮写代码
AI已经帮我们定位到问题所在了,并给出了解决方案,但这个解决方案是理论较多,不如让TA给出代码 —— show me your code ai!
参照上述代码,我们需要将在windows平台执行spawn代码的地方改写成AI给出的方式,改完后,测试一下,发现完全没问题,AI太厉害了,给TA点个赞!
总结
spawn在macos、linux上面执行命令代码如下:
spawn(command, { shell: '/bin/bash' })
spawn在windows、sunos上面执行命令代码如下:
spawn('cmd.exe', ['/c'].concat(command.split(' ')), {
shell: true,
});
此处command的格式是:[快捷指令] + 空格 + [参数]