Как запустить один запуск npm для двух разных папок в каталоге моего проекта

Я хотел бы запустить одну команду npm start для запуска как папки внешнего интерфейса, так и папки внутреннего интерфейса. В настоящее время мне нужно перемещаться внутри каждой папки и индивидуально запускать команду на обоих, чтобы увидеть, как мое приложение открывается на локальном хосте. Я изучил пакет «одновременно», но у меня возникли проблемы с его реализацией в моем файле package.json. Вот мой файл package.json для моей папки внешнего интерфейса:

"scripts": {
"start": "set HOST = 'http://localhost' && set PORT=8000 && react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"postbuild": "react-snap"

}

Я попытался использовать этот бит для запуска бэкэнда после запуска npm start во фронтенде, но это не сработало:

"start": "set HOST = 'http://localhost' && set PORT=8000 && ../backend/ start & react-scripts start"

Изменить: проблемы по-прежнему возникают после повторной попытки.

Вот мои скрипты из моих файлов package.json

Папка внешнего интерфейса

"scripts": {
"start": "set HOST = 'http://localhost' && set PORT=8000 && react-scripts start",
"build": "react-scripts build",
"test": "jest",
"eject": "react-scripts eject",
"postbuild": "react-snap"
},

Серверная папка

"scripts": {
"start": "node ./bin/www"
},

Фронтенд написан на React, а бэкэнд - на Node. Любая помощь будет принята с благодарностью!


person Jschriemer    schedule 23.09.2019    source источник
comment
Почему бы просто не использовать 1 package.json как для клиента, так и для сервера?   -  person George    schedule 24.09.2019
comment
Как я мог это сделать? Переместить его либо во внешний / внутренний интерфейс, либо в каталог проекта?   -  person Jschriemer    schedule 24.09.2019
comment
Иметь единственный корневой каталог, например. / project, в котором есть ваш package.json и node_modules, которые имеют какие-либо зависимости как для клиента, так и для сервера, а также папку / client и / server в / project.   -  person George    schedule 24.09.2019
comment
И мои клиентские, и серверные папки имеют свои собственные node_modules и package.json ...   -  person Jschriemer    schedule 24.09.2019
comment
Затем объедините свои зависимости в один package.json, который можно найти в ваших файлах package.json. Затем сделайте свежий npm i в / project   -  person George    schedule 24.09.2019
comment
Если вы используете macos, попробуйте Keyboard Maestro. Мое самое любимое приложение.   -  person Dmitry Grinko    schedule 24.09.2019


Ответы (3)


Внутри папки package.json (серверная часть) перейдите к скриптам

затем добавьте это:

"start": "node index.js",
"client": "npm run start --prefix client",
"dev": "concurrently \"npm run start\" \"npm run client\"" 

(при условии, что ваша клиентская папка содержит интерфейсный сервер)

затем, если вы хотите запустить оба сервера, просто введите npm run dev и будьте счастливы

person Celso Wellington    schedule 23.09.2019

Пакет 'concurrently' может это сделать

npm i concurrently --save-dev

Затем настройте npm run dev на выполнение

"dev": "concurrently --kill-others \"npm run start-watch\" \"npm run wp-server\""

Другой вариант - сделать (Запуск в Windows CMD):

"dev": "start npm run start-watch && start npm run wp-server"
person Ben Rauzi    schedule 24.09.2019

Я столкнулся с той же проблемой, но теперь она решена. Допустим, сервер находится в папке «Backend», а интерфейс - в папке «client».

тогда скрипты в server-side package.json должны выглядеть так:

"scripts": {
    "client-install": "npm install --prefix client",
    "start": "node server.js",
    "server": "nodemon server.js",
    "client": "cd ../ && npm start --prefix client",
    "dev": "concurrently \"npm run server\" \"npm run client\""
  },

а на стороне клиента package.json похож на:

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "proxy": "http://localhost:5000",

тогда 'npm run dev' запускает одновременно и сервер

person Piyali    schedule 06.08.2020