问题描述
我正在构建服务器和客户端nwjs应用程序,但无法同时打开两者。我想知道是否有任何方法可以做到这一点。我在两个打开的VS代码上都运行npm run dev
,但是当我在第二个应用程序上运行此命令时,它根本不会打开(与第二个应用程序无关)。我尝试构建客户端应用程序并运行它,然后在运行服务器应用程序后,但是相同,第二个应用程序将无法启动。
这是我在两个应用程序中的package.json文件,我不知道这是否有帮助。应用程序中只有名称不同(nwjs_client和nwjs_server)
{
"name": "nwjs_server","version": "1.0.0","description": "","main": "index.js","scripts": {
"dev": "nw src/","prod": "nwbuild --platforms win32,win64,osx64,linux32,linux64 --buildDir dist/ src/"
},"keywords": [],"author": "","license": "ISC","dependencies": {
"nw": "^0.49.1"
}
}
我愿意接受任何答案,我不知道是否有可能运行两个不同的nwjs应用程序。
解决方法
我对你想做什么感到困惑。
- 如果您尝试运行 NW.js,而不是直接从
index.html
加载,而是从本地网络服务器加载显示页面:- 创建一个
server.js
以在特定端口(例如4263
或不常见的端口)上启动本地网络服务器。 - 如果您为此需要任何 node_modules(例如
express
),请确保它是dependency
而不是devDependency
。 - 使用与服务器相同的端口将
"main"
中的package.json
设置为"http://localhost:4263
- 将您的
"node-main"
设置为"server.js"
,这将在启动应用程序时显示窗口之前在节点上下文中运行。 - 也使用相同的端口将您的
"node-remote"
设置为"http://localhost:4263"
。这将允许 Node 命令在 NW.js 中加载时在该 URL 上运行。
- 创建一个
- 如果您想同时运行两个命令,您可以:
-
npm install --save-dev concurrently wait-on
。这将安装两个 devDeps - 将您的 npm 脚本设置为
"start": "concurrently \"npm run serve\" \"wait-on http://localhost:4263 && nw .\""
- 这将运行您的
npm run serve
命令,这可能会启动本地网络服务器进行开发,如果使用 webpack 之类的东西,这可能需要一分钟。然后它等待直到localhost:4263
实际返回响应。然后启动 NW.js
-
concurrently 还可以让您同时运行任意两个(或多个)命令。