Is it possible to start MongoDB from within a Grunt task? Basically when I'm running my development environment with grunt server
I want it to start up the MongoDB server as well possibly by running mongod
.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You can use grunt-shell to run the command:
grunt.initConfig({
shell: {
mongo: {
command: 'mongod'
}
}
});
回答2:
You can use grunt-shell-spawn to do this. The previous answer recommends grunt-shell, which runs synchronously on the main process - blocking execution of other tasks.
shell: {
mongo: {
command: 'mongod',
options: {
async: true
}
}
}
回答3:
To add to JJJ's answer, using grunt-shell-spawn if you want to make sure each project has it's own mongodb instance with it's own data you would do this:
shell: {
mongodb: {
command: 'mongod --dbpath ./data/db',
options: {
async: true,
stdout: false,
stderr: true,
failOnError: true,
execOptions: {
cwd: '.'
}
}
}
},
The example also prints out only errors.
You would then just add shell:mongodb
to your grunt server
task list (preferably the first task), add data
to your .gitignore
(assuming you're using git) and you're good to go.