2016-06-25 2 views
2

У меня есть специальный скрипт для тестирования, который я могу запустить с помощью команды npm run test, которая выполняет некоторый сценарий Node для запуска тестов e2e/unit. Но перед этим я должен запустить webpack dev-сервер с npm run dev (это также специальный скрипт Node, подробности не имеют значения) в другом окне терминала. Итак, я хочу опустить npm run dev вручную и переместить его в пользовательский сценарий npm run test, т. Е. Я хочу программно выполнить webpack dev сервер в сценарии Node. Как я могу выполнить программный код npm run dev с помощью сценария Node и остановить его? Заранее спасибо!Как выполнить программную команду «npm run»?

"dev": "node node_modules/webpack-dev-server/bin/webpack-dev-server.js --host 0.0.0.0 --history-api-fallback --debug --inline --progress --config config/config.js" 
+0

Почему бы не создать «npm start», который запускает два других сценария? Например, «start»: «npm run dev & npm run test» ' – elclanrs

+0

@elclanrs' npm run test' не запускается до 'npm run dev' – malcoauri

+0

Почему бы не запустить' webpack-dev-server' [программно] (http: //webpack.github.io/docs/webpack-dev-server.html#api)? – robertklep

ответ

3

Вы можете использовать Exec для запуска из сценария

import * as async from 'async'; 
const exec = require('child_process').exec; 

async.series([ 
exec('npm run dev'), 
exec('npm run test') 
]); 
2

Просто установите npm:

npm install npm 

Затем в программе:

npm.command.run('dev', (err) => { ... }); 

См.источник более Информация. Объект npm.command является неофициальным API для npm.

Смежные вопросы