svrxjs / svrx

Server-X: A pluggable frontend server built for efficient front-end development
https://svrx.io
MIT License
499 stars 28 forks source link

这插件的群没人回复,issue也没人处理,bug还一大堆,都别用了 #193

Closed xiaolizi9 closed 3 years ago

xiaolizi9 commented 3 years ago

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like A clear and concise description of what you want to happen.

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

Additional context Add any other context or screenshots about the feature request here.

image

leeluolee commented 3 years ago

@XiaoLizi29 首先,这位同学, 你问题就提的不充分。 另外,你群里微信打开 插件失效 我们这都没有复现。

xuchaoying commented 3 years ago

建议按照 bug issue 中 To Reproduce 提供下详细的必现路径以便我们 debug

xiaolizi9 commented 3 years ago

@XiaoLizi29 首先,这位同学, 你问题就提的不充分。 另外,你群里微信打开 插件失效 我们这都没有复现。

用任意一个脚手架起一个服务,在真机上可以正常使用svrx的插件,但是微信内置浏览器全部失效,这个表述的已经很清楚了

xiaolizi9 commented 3 years ago

建议按照 bug issue 中 To Reproduce 提供下详细的必现路径以便我们 debug

本来是看了你的网易前端高级课来的,对徐老师很敬佩,现在这种态度解决bug对这个插件很失望

xuchaoying commented 3 years ago

@XiaoLizi29 理解你的情绪。 这边曾经按照你的描述,尝试复现,路径是:

  1. svrx 启动一个服务, 引入了测试用的 vconsole qrcode 插件 svrx --vconsole --qrcode
  2. 电脑访问本机ip+服务端口,可以看到页面展示了 vconsole 及页面二维码
  3. 使用和电脑连入同一个内网的手机,打开微信扫一扫,扫码进入该页面

实际结果是,手机页面显示正常,vconsoleqrcode 也在微信浏览器中有显示且功能正常,当时是想让你提供更具体的描述。

在真机上可以正常使用svrx的插件,但是微信内置浏览器全部失效

所以你看下是不是要补充下具体指的是什么插件失效了?

xiaolizi9 commented 3 years ago

@XiaoLizi29 理解你的情绪。 这边曾经按照你的描述,尝试复现,路径是:

  1. svrx 启动一个服务, 引入了测试用的 vconsole qrcode 插件 svrx --vconsole --qrcode
  2. 电脑访问本机ip+服务端口,可以看到页面展示了 vconsole 及页面二维码
  3. 使用和电脑连入同一个内网的手机,打开微信扫一扫,扫码进入该页面

实际结果是,手机页面显示正常,vconsoleqrcode 也在微信浏览器中有显示且功能正常,当时是想让你提供更具体的描述。

在真机上可以正常使用svrx的插件,但是微信内置浏览器全部失效

所以你看下是不是要补充下具体指的是什么插件失效了?

我又试了一下,这样子是正常的。但是如果使用charles就不能行了,我是使用了charles的map功能,将线上的资源map到本地,然后线上的资源的确是map到本地了,但是没有出现qrcode这些面板

int64ago commented 3 years ago

我是使用了charles的map功能,将线上的资源map到本地

所以我理解你是代理了线上的请求,然后把请求里的部分静态资源 map 到本地用 svrx 启的服务上的静态资源?

如果是这样,插件失效是必然的,插件之所以可以在页面看到是因为 svrx 往 html 页面里注入了 /svrx/svrx-client.js/svrx/svrx-client.css

所以你的场景 svrx 暂时支持得还不是很好,这个 issue 可以先开着,有了进展会这里同步。

int64ago commented 3 years ago

另外,可能是 @xuchaoying 脾气太好了,你这种语气压根不像来交流的,这种 issue 在开源社区大概率是直接关掉的。

xiaolizi9 commented 3 years ago

我是使用了charles的map功能,将线上的资源map到本地

所以我理解你是代理了线上的请求,然后把请求里的部分静态资源 map 到本地用 svrx 启的服务上的静态资源?

如果是这样,插件失效是必然的,插件之所以可以在页面看到是因为 svrx 往 html 页面里注入了 /svrx/svrx-client.js/svrx/svrx-client.css

所以你的场景 svrx 暂时支持得还不是很好,这个 issue 可以先开着,有了进展会这里同步。

    我这边是把所有的静态资源都用charles然后map到了本地,所以html也map了,按理说应该是可以展示qrcode这些面板的,结果却没有出现,但是html的确是map成功了。
    然后我又查看了源码,发现html虽然map成功了,但是svrx里面引用的js和css却报404,因为这些资源被分配在了不同的路径下,报错信息是这样的:

image 又对这些报错的资源写了相对应的规则 image 这样子是正常了,就是结合charles写规则的时候有点繁琐,试问可以优化成svrx的所有插件都在svrx/路径下吗,这样子只需写一条规则就可以解决了,现在的svrx插件的资源是这样子分布的,有点乱: image

   还有就是配置文件可否增加一项配置,可以把svrx的插件通过webpack打包进去,如果能打包进去的话,和charles结合使用会更舒服
xiaolizi9 commented 3 years ago

另外,可能是 @xuchaoying 脾气太好了,你这种语气压根不像来交流的,这种 issue 在开源社区大概率是直接关掉的。

我语气不好这点我向你们致歉。但是你要说我不是来交流的,那你说错了,如果我不是来交流了,我就不会去看svrx的文档,看svrx的两篇文章,又提issue,又加交流群了,正是得不到回复才会这样子,如果你关掉这条issue,那可能后面想提issue的用户都不会提了,因为不解决问题就关掉,在我看来是没有开源精神的。

int64ago commented 3 years ago

试问可以优化成svrx的所有插件都在svrx/路径下吗

理论上是可以的,这个我们评估下

但是,需要补充的是,你把所有静态资源都代理到本地了,只是为了使用线上的接口?那么如微信群里 @xuchaoying 一开始就提到的,你可能更需要是 svrx proxy 能力,不需要 charles。

正是得不到回复才会这样子

如果你一开始就把你怎么用 charles 映射的说明白,肯定是会得到正确的回复的,有些表述你可能觉得理所当然,但是局外人因为缺少上下文,所以就会去猜,还要一遍遍跟你确认,这会耽误一些时间

然后,既然你提到开源精神,那可以继续探讨下,其实开源社区最希望看到的是两类行为:

最后,有几个文章可以看看:

xiaolizi9 commented 3 years ago

那么如微信群里 @xuchaoying 一开始就提到的,你可能更需要是 svrx proxy 能力,不需要 charles。

其实我这边的业务场景是需要调试打包后的代码,所以svrx proxy这种方式解决不了,如果配置文件能提供参数可以把svrx的插件打包进代码是更好的

最后,有几个文章可以看看:

您推荐的这些文章我下去好好看看。主要是我的业务场景是结合Charles使用的,主要问题是出在打包后的代码,所以通过PR和sandbox也无法复现,还请谅解

xiaolizi9 commented 3 years ago

还有就是,比如在开发微信网页的时候,用本地服务使用svrx proxy这种方式测试比如授权这种业务的时候,会出现“和公众平台的域名不一致”,因为公众平台配置的是www.XX.com,本地却是用ip地址的,所以开发微信生态的时候使用Charles的map功能很关键。 所以这种情况使用Charles的map就仅仅是为了使用线上的接口,而svrx proxy却满足不了需求

试问可以优化成svrx的所有插件都在svrx/路径下吗

理论上是可以的,这个我们评估下

但是,需要补充的是,你把所有静态资源都代理到本地了,只是为了使用线上的接口?那么如微信群里 @xuchaoying 一开始就提到的,你可能更需要是 svrx proxy 能力,不需要 charles。

正是得不到回复才会这样子

如果你一开始就把你怎么用 charles 映射的说明白,肯定是会得到正确的回复的,有些表述你可能觉得理所当然,但是局外人因为缺少上下文,所以就会去猜,还要一遍遍跟你确认,这会耽误一些时间

然后,既然你提到开源精神,那可以继续探讨下,其实开源社区最希望看到的是两类行为:

  • 直接提 PR
  • 遇到问题描述清楚,最好有完整的复现链路

最后,有几个文章可以看看:

还有就是,比如在开发微信网页的时候,用本地服务使用svrx proxy这种方式测试比如“微信授权”这种业务的时候,会出现“和公众平台的域名不一致”,因为公众平台配置的是www.XX.com,本地却是用ip地址的,所以开发微信生态的时候使用Charles的map功能很关键。 所以这种情况使用Charles的map就仅仅是为了使用线上的接口,而svrx proxy却满足不了需求

xuchaoying commented 3 years ago

因为公众平台配置的是www.XX.com,本地却是用ip地址的

这种情况可以尝试将 proxy.changeOrigin 设置为 true, 见 proxy 选项

xiaolizi9 commented 3 years ago

这种情况可以尝试将 proxy.changeOrigin 设置为 true, 见 proxy 选项

这种方式也是不可行的,改变changeOrigin只能保证请求的源是变成域名的形式了,但是webpack起的服务还是ip地址的形式,所以还会报“和公众平台的域名不一致”的错误,除非有办法可以让webpack起的服务变成“微信公众平台”配置的域名,然而这种想法是没有办法解决的

xuchaoying commented 3 years ago

如果还有问题可以开具体的issue提问