我的mean.js应用程序是基于yoeman生成器的,有一些调整(例如,将前端和后端分离,以便可以单独部署)。
我正在使用图(见下面的fig.yml )启动这个应用程序。当我将命令设置为"node server.js“时,服务器需要6秒才能启动。
当我开始使用“咕噜”,它运行无恶魔和观看,它大约需要6分钟。我试过很多种东西,但不明白为什么没有恶魔会让事情跑得这么慢
fig.yml:
web:
build: .
links:
- db:mongo.local
ports:
- "3000:3000"
volumes:
- .:/home/abilitie
command: grunt
#command: node server.js # much faster but you don't get the restart stuff
environment:
NODE_ENV: development
db:
image: dockerfile/mongodb
ports:
- "27017:27017"格伦特文件(摘录)
concurrent: {
default: ['nodemon', 'watch'],
old_default: ['nodemon', 'watch'],
debug: ['nodemon:debug', 'watch', 'node-inspector'],
options: {
logConcurrentOutput: true,
limit: 10
}
},
jshint: {
all: {
src: watchFiles.serverJS,
options: {
jshintrc: true
}
}
},
grunt.registerTask('lint', ['jshint']);
// Default task(s).
grunt.registerTask('default', ['lint', 'concurrent:default']);发布于 2015-01-31 17:11:59
NFS拯救了我们。
VirtualBox共享文件夹非常慢。使用这个流浪汉图像代替boot2docker要快得多。
https://vagrantcloud.com/yungsang/boxes/boot2docker
此外,确保禁用UDP,或NFS可能挂起。您可以在Vagrantfile中这样做:
config.vm.synced_folder ".", "/vagrant", type: "nfs", nfs_udp: false
发布于 2015-01-30 16:10:42
这是因为您的第一种方法只是通过$ node server.js运行Express服务器。但我不明白为什么我要花6秒才能开始?也许你有一个缓慢的硬件..。
为了理解第二种方法为什么需要6分钟的时间,您需要了解grunt在启动后做了什么:

watch和nodemon
如果watch是透明的(它监视文件,在编辑它们之后,重新启动服务器),那么nodemon是什么?更确切地说,通过nodejs和nodemon启动服务器有什么区别。来自官方github文件
nodemon将监视启动nodemon目录中的文件,如果任何文件发生更改,nodemon将自动重新启动节点应用程序。 如果您有一个应用程序的
package.json文件,您可以完全省略主脚本,nodemon将读取主属性的package.json并使用该值作为应用程序。
它正在监视node_modules目录中的所有文件,而在我的平均值是0.4.0中,它的大约41 000个文件。在您的例子中,缓冲所有这些文件大约需要6分钟。尝试添加到您的gruntfile.js grunt.initConfig > nodemon > dev > ignore选项中
nodemon: {
dev: {
script: 'server.js',
options: {
nodeArgs: ['--debug'],
ext: 'js,html',
watch: watchFiles.serverViews.concat(watchFiles.serverJS),
ignore: 'node_modules/*' // or '/node_modules'
}
}
},你需要准确地确定问题出在哪里。尝试以三种不同的方式启动服务器并测量时间
NODE_ENV=development nodejs server.jsNODE_ENV=development nodemon server.jsNODE_ENV=development nodemon server.js --ignore node_modules/https://stackoverflow.com/questions/28229539
复制相似问题