NodeJS 以File(file://)协议运行Web服务器

x33g5p2x  于 2022-11-03  发布在  Node.js
关注(0)|答案(2)|浏览(240)

我正在使用Quasar制作Vue SPA Web应用程序/页面。在这种情况下,只能通过单击由Quasar打包程序创建的index.html文件来运行此Web应用程序。该软件包将仅在本地分发,而不会托管在域中。
现在我的问题是。由于我将使用XMLHttpRequest打开包中的本地文件(xml文件),我需要打开一个web服务器。
有没有什么方法可以通过双击index.htmlfile://协议)来自动启动(以编程方式)Web服务器?
我在想这样的事情(但我仍然无法让它工作,由于错误Cannot statically analyse 'require(…, …)' in line 74):

const LocalWebServer = require('local-web-server')
const ws = LocalWebServer.create({
  port: 9000,
  directory: 'public'
})

/* shut down */
ws.server.close()

https://github.com/lwsjs/local-web-server/wiki/API-reference
谢谢你!

eimct9ow

eimct9ow1#

不,html文件将不能启动可执行文件并打开tcp端口。

lhcgjxsq

lhcgjxsq2#

从理论上讲,如果你把所有的数据都设为静态,并在本地调用它,那么就有可能通过USB密钥使类星体PWA工作。
基本上,你需要创建一个快照,或者你的应用所做的所有API调用的几个快照。这意味着,如果你的API可以请求“产品”,你需要将它们全部导出到一个.json中,这样你就可以在本地执行“查询”,到一个全局对象。
这意味着您的所有axios请求(无论如何都是XMLHttpRequest糖衣)或等价物必须被静态数据替换,例如:json、categories.json、任何应用程序需要的东西. json等。
然后,应用发出的任何“by id”请求,即"show product detail page,which id is in the current file:///URL“,一旦你将上面提到的.json文件字符串化,应用就会从你要声明的全局对象中获取ID。
1.通过file:///访问.json文件(路径相对于index.html)
1.将它们转换为全局JS对象(所有视图可能都需要访问)。
1.(可选)在$state中初始化它们(如果应用程序需要状态管理)
1.不要太担心性能瓶颈,除了浏览器的瓶颈。
1.您可能必须将所有vue文件连接成一个文件。

相关问题