我本地有一个 https 服务,访问网址是 https://127.0.0.1:8080/
然后在命令行中直接敲
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --host-rules="MAP xxx.asdf:443 127.0.0.1:8080" --ignore-certificate-errors --incognito https://xxx.asdf://xxx.asdf
是会打开一个隐身窗口,并且打开 https://xxx.asdf,然后内容是我 https://127.0.0.1:8080/ 的那网站
但是如果换成以下代码
const child_process = require('child_process');
child_process.spawn(
`/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome`,
[
`--host-rules="MAP xxx.asdf:443 127.0.0.1:8080"`,
`--ignore-certificate-errors`,
`--incognito`,
`https://xxx.asdf`
]
)
然后通过 node 去运行,会打开一个隐身窗口,但是会提示找不到 https://xxx.asdf 的 ip 地址,即无法访问
初步看来是因为 spawn 运行的和直接在命令行里面敲有点不一样,大家知道怎么改 node 的代码达到跟命令行一样的效果吗?
1
CDL 2017-08-25 19:14:37 +08:00
加上{shell:true}参数试试
|
2
p2227 OP @CDL 不行,直接是没有反应,浏览器没有打开命令行就完成了。google 了几篇文章都是说 window 下双引号的问题,但我的明明是 mac [捂脸]
|
3
bertonzh 2017-08-25 23:17:12 +08:00
`--host-rules`,
`MAP xxx.asdf:443 127.0.0.1:8080` 呢? |