2017-10-13 101 views
1

我在故宫脚本我可以在1个终端运行两个正在进行的故宫命令

"scripts": { 
"webpack": "webpack --config webpack.config.js --watch", 
"server": "nodemon server.js", 
} 

正如你可以看到这两个命令,一个的WebPack我每次保存文件和一个仅仅运行在服务器上运行nodemon,所以我不必在每次保存文件时输入“npm start”或其他类型的东西。

现在这个工作正常,但我需要2个终端总是打开来运行它,它有点拥挤在我的屏幕上。

我不能有一个命令这样写的:

"start": "npm run webpack && npm run server" 

becase的的的WebPack命令正在进行中,将永远不会达到第二个命令。

有没有办法在1个终端中拥有这两个命令,这甚至是可取的吗?

+0

它比它的价值更复杂。为什么不使用tmux或类似的多路复用器并将它们分别放在不同的窗格中运行?如果您使用的是macos并使用iterm2,则可以拆分窗口。 – maxhallinan

+0

尝试添加webpack命令到''prestart''节和简单的运行'node start' –

回答

2

您可以使用&(只有一个&符号,而不是两个)在后台运行一个进程,但这需要您手动管理它,这将非常繁琐。详情请参阅What does ampersand mean at the end of a shell script line?

为使用,以防有人建concurrently,这使得它简单的并行运行的过程,并跟踪其产出。

npm install --save-dev concurrently 

而且你start脚本变为:

"start": "concurrently 'npm run webpack' 'npm run server'" 

如果你想使输出有点漂亮,你可以给流程与-n名字和颜色与-c,例如:

"start": "concurrently -n 'webpack,server' -c 'bgBlue.bold,bgGreen.bold' 'npm run webpack' 'npm run server'" 
+0

谢谢!同时工作就像一个魅力,你只是省下了不断在终端之间切换的麻烦。 – TheGreyBearded

相关问题