Как открыть два отдельных nw.js приложения

#npm #package.json #node-webkit

#npm #package.json #узел-webkit

Вопрос:

Я создаю серверное и клиентское приложение nwjs, но я не могу открыть оба одновременно. Интересно, есть ли какой-нибудь способ сделать это. Я запускаю npm run dev оба своих открытых VS-кода, но когда я запускаю эту команду во втором приложении, оно просто не открывается вообще (не имеет значения, какое из них является вторым приложением, которое я хотел бы запустить). Я попытался создать клиентское приложение и запустить его, а после него запустить серверное приложение, но это то же самое, второе приложение не запускается.

Это мой файл 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"
  }
}
  

Я готов принять любые ответы, я не знаю, возможно ли вообще запустить 2 разных приложения nwjs.

Ответ №1:

Я смущен тем, что вы пытаетесь сделать.

  • Если вы пытаетесь запустить NW.js это означает, что вместо загрузки непосредственно с a index.html , он загружает и отображает страницу с локального веб-сервера:
    1. Создайте server.js , который запускает локальный веб-сервер на определенном порту (например 4263 , или что-то не очень распространенное).
    2. Если вам нужны какие-либо node_modules для этого (например express ), убедитесь, что это a dependency , а не a devDependency .
    3. Установите свой "main" в package.json "http://localhost:4263 , используя тот же порт, что и сервер
    4. установите "node-main" "server.js" значение, оно будет выполняться в контексте узла перед отображением вашего окна при запуске приложения.
    5. Также настройте свой порт "node-remote" на "http://localhost:4263" использование того же порта. Это позволит командам узла запускаться по этому URL-адресу при загрузке в NW.js .
  • Если вы хотите запустить две команды одновременно, вы можете:
    1. npm install --save-dev concurrently wait-on . Это установит два devDeps
    2. Установите для вашего скрипта npm значение "start": "concurrently "npm run serve" "wait-on http://localhost:4263 amp;amp; nw .""
    3. Это запустит вашу npm run serve команду, которая, предположительно, запускает локальный веб-сервер для разработки, если используется что-то вроде webpack, это может занять минуту. Затем он ожидает, пока localhost:4263 фактически не вернет ответ. Затем он запускается NW.js

concurrently также позволит вам запускать любые две (или более) команды одновременно.