我有两个应用程序说applicationA
和applicationB
,如果我在终端上运行以下命令
grunt serve
我的applicationA
将会正常工作。
当我需要运行applicationB
时,首先我需要停止applicationA
然后我才能运行applicationB
。如果我试图同时运行它,那就像这样抱怨
Fatal error: Port 9000 is already in use by another process.
注意:它运行的端口是9000
,一个应用程序在angularJS
,另一个包含静态页面
所以我的问题是我可以在Grunt
并行运行多个应用程序吗?如果是,那么请指导我该怎么做?
答案 0 :(得分:2)
所以我的问题是我可以在Grunt上运行多个应用程序吗? 平行?如果是,那么请指导我如何做到这一点
是的,您可以通过grunt(来自单独的终端窗口)运行多个应用程序,但请确保每个应用程序使用不同的端口号
您可以按如下方式注册grunt任务:
grunt.registerTask('serve', function (target) {
if (target === 'applicationA') {
return grunt.task.run([
'express:appA',
]);
}
return grunt.task.run([
'express:appB',
]);
});
将applicationA作为grunt serve:applicationA
而将applicationB作为grunt serve:applicationB
希望它清楚!
答案 1 :(得分:2)
在阅读@NLN回答后,他提到了
确保每个人使用不同的端口号
所以我开始阅读我的Gruntfile.js
文件。在此文件中,connect
applicationA
对象定义如下
grunt.initConfig({
connect: {
options: {
port: 9000,
hostname: 'localhost',
livereload: 35729
}
}
});
所以在其他applicationB
我已更改此配置port
和livereload
这样
grunt.initConfig({
connect: {
options: {
port: 9001, // change to some different port
hostname: 'localhost',
livereload: 35730 // this also need to change to some different port
}
}
});
它对我有用。愿它也可以帮助别人:)
答案 2 :(得分:0)
您可以通过更新Gruntfile
:
grunt.initConfig({
server: {
port: grunt.option('port') || 8000
}
});
或者从命令行:
$ grunt serve --port=8000
答案 3 :(得分:0)
首先更改@Muhammad Suleman建议的端口号
之后,如果问题仍然存在,请在应用A中更改 livereload:false 并保留 livereload:true 在申请B中。
options: {
livereload: false
}
P.S。 - 与livereload解决相关的崇高文本2问题。
答案 4 :(得分:0)
如果有人在gruntFile中使用watch,但错误仍然显示“端口已被某个进程使用”,则您还必须在GruntFile.js的watch上将行livereload:true
更改为livereload:9001
一台服务器。