在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):remy/nodemon开源软件地址(OpenSource Url):https://github.com/remy/nodemon开源编程语言(OpenSource Language):JavaScript 92.7%开源软件介绍(OpenSource Introduction):nodemonnodemon is a tool that helps develop Node.js based applications by automatically restarting the node application when file changes in the directory are detected. nodemon does not require any additional changes to your code or method of development. nodemon is a replacement wrapper for InstallationEither through cloning with git or by using npm (the recommended way): npm install -g nodemon # or using yarn: yarn global add nodemon And nodemon will be installed globally to your system path. You can also install nodemon as a development dependency: npm install --save-dev nodemon # or using yarn: yarn add nodemon -D With a local installation, nodemon will not be available in your system path or you can't use it directly from the command line. Instead, the local installation of nodemon can be run by calling it from within an npm script (such as Usagenodemon wraps your application, so you can pass all the arguments you would normally pass to your app: nodemon [your node app] For CLI options, use the nodemon -h Using nodemon is simple, if my application accepted a host and port as the arguments, I would start it as so: nodemon ./server.js localhost 8080 Any output from this script is prefixed with You can also pass the nodemon --inspect ./server.js 80 If you have a nodemon will also search for the Also check out the FAQ or issues for nodemon. Automatic re-runningnodemon was originally written to restart hanging processes such as web servers, but now supports apps that cleanly exit. If your script exits cleanly, nodemon will continue to monitor the directory (or directories) and restart the script if there are any changes. Manual restartingWhilst nodemon is running, if you need to manually restart your application, instead of stopping and restart nodemon, you can type Config filesnodemon supports local and global configuration files. These are usually named The specificity is as follows, so that a command line argument will always override the config file settings:
A config file can take any of the command line arguments as JSON key values, for example: {
"verbose": true,
"ignore": ["*.test.js", "fixtures/*"],
"execMap": {
"rb": "ruby",
"pde": "processing --sketch={{pwd}} --run"
}
} The above A further example of options can be seen in sample-nodemon.md package.jsonIf you want to keep all your package configurations in one place, nodemon supports using {
"name": "nodemon",
"homepage": "http://nodemon.io",
"...": "... other standard package.json values",
"nodemonConfig": {
"ignore": ["test/*", "docs/*"],
"delay": 2500
}
} Note that if you specify a This section needs better documentation, but for now you can also see Using nodemon as a modulePlease see doc/requireable.md Using nodemon as child processPlease see doc/events.md Running non-node scriptsnodemon can also be used to execute and monitor other programs. nodemon will read the file extension of the script being run and monitor that extension instead of nodemon --exec "python -v" ./app.py Now nodemon will run Default executablesUsing the To add support for nodemon to know about the {
"execMap": {
"pl": "perl"
}
} Now running the following, nodemon will know to use nodemon script.pl It's generally recommended to use the global Monitoring multiple directoriesBy default nodemon monitors the current working directory. If you want to take control of that option, use the nodemon --watch app --watch libs app/server.js Now nodemon will only restart if there are changes in the Don't use unix globbing to pass multiple directories, e.g Specifying extension watch listBy default, nodemon looks for files with the nodemon -e js,pug Now nodemon will restart on any changes to files in the directory (or subdirectories) with the extensions Ignoring filesBy default, nodemon will only restart when a This can be done via the command line: nodemon --ignore lib/ --ignore tests/ Or specific files can be ignored: nodemon --ignore lib/app.js Patterns can also be ignored (but be sure to quote the arguments): nodemon --ignore 'lib/*.js' Note that by default, nodemon will ignore the Application isn't restartingIn some networked environments (such as a container running nodemon reading across a mounted drive), you will need to use the Via the CLI, use either nodemon -L Though this should be a last resort as it will poll every file it can find. Delaying restartingIn some situations, you may want to wait until a number of files have changed. The timeout before checking for new file changes is 1 second. If you're uploading a number of files and it's taking some number of seconds, this could cause your app to restart multiple times unnecessarily. To add an extra throttle, or delay restarting, use the nodemon --delay 10 server.js For more precision, milliseconds can be specified. Either as a float: nodemon --delay 2.5 server.js Or using the time specifier (ms): nodemon --delay 2500ms server.js The delay figure is number of seconds (or milliseconds, if specified) to delay before restarting. So nodemon will only restart your app the given number of seconds after the last file change. If you are setting this value in nodemon --delay 2.5
{
"delay": 2500
} Gracefully reloading down your scriptIt is possible to have nodemon send any signal that you specify to your application. nodemon --signal SIGHUP server.js Your application can handle the signal as follows. process.once("SIGHUP", function () {
reloadSomeConfiguration();
}) Please note that nodemon will send this signal to every process in the process tree. If you are using if (cluster.isMaster) {
process.on("SIGHUP", function () {
for (const worker of Object.values(cluster.workers)) {
worker.process.kill("SIGTERM");
}
});
} else {
process.on("SIGHUP", function() {})
} Controlling shutdown of your scriptnodemon sends a kill signal to your application when it sees a file update. If you need to clean up on shutdown inside your script you can capture the kill signal and handle it yourself. The following example will listen once for the process.once('SIGUSR2', function () {
gracefulShutdown(function () {
process.kill(process.pid, 'SIGUSR2');
});
}); Note that the Triggering events when nodemon state changesIf you want growl like notifications when nodemon restarts or to trigger an action when an event happens, then you can either For example, to trigger a notification on a Mac when nodemon restarts, {
"events": {
"restart": "osascript -e 'display notification \"app restarted\" with title \"nodemon\"'"
}
} A full list of available events is listed on the event states wiki. Note that you can bind to both states and messages. Pipe output to somewhere elsenodemon({
script: ...,
stdout: false // important: this tells nodemon not to output to console
}).on('readable', function() { // the `readable` event indicates that data is ready to pick up
this.stdout.pipe(fs.createWriteStream('output.txt'));
this.stderr.pipe(fs.createWriteStream('err.txt'));
}); Using nodemon in your gulp workflowCheck out the gulp-nodemon plugin to integrate nodemon with the rest of your project's gulp workflow. Using nodemon in your Grunt workflowCheck out the grunt-nodemon plugin to integrate nodemon with the rest of your project's grunt workflow. Pronunciation
Well...I've been asked this many times before. I like that I've been asked this before. There's been bets as to which one it actually is. The answer is simple, but possibly frustrating. I'm not saying (how I pronounce it). It's up to you to call it as you like. All answers are correct :) Design principles
Nodemon is not perfect, and CLI arguments has sprawled beyond where I'm completely happy, but perhaps it can be reduced a little one day. FAQSee the FAQ and please add your own questions if you think they would help others. BackersThank you to all our backers! |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论