New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to enable logs when using nodemon as a module #2195
Comments
FWIW, I was able to work around this issue by exploiting utils, but surely this isn't a recommended approach: #!/usr/bin/env node
/**
* @see https://github.com/remy/nodemon?tab=readme-ov-file#using-nodemon-as-a-module
* @see https://github.com/remy/nodemon/blob/main/doc/requireable.md
*/
const utils = require('nodemon/lib/utils/');
const nodemonLogger = require('nodemon/lib/utils/log'); // <-- import the logger so we can create a custom instance
const nodemon = require('nodemon');
utils.log = nodemonLogger(false); // <-- overwrite the logger with a custom instance, where we manually provide the value for `utils.isRequired`
// @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/nodemon/index.d.ts
const config = {
verbose: true,
watch: [ './dist' ],
delay: 2000,
exec: 'yarn run serve:dev',
// @see https://github.com/remy/nodemon?tab=readme-ov-file#application-isnt-restarting
legacyWatch: true,
}
nodemon(config);
nodemon
.on('start', function () {
console.log('test -----------------------------')
console.log(utils.log.info);
console.log(utils.log.info.toString());
utils.log.info('App has started');
})
.on('quit', function () {
utils.log.info('App has quit');
process.exit();
})
.on('restart', function (files) {
console.log('test 2 -----------------------------')
utils.log.info('App restarted due to: ', files);
}); |
@remy I assume that there is a good reason for nodemon to be able to know whether or not it's being used as a module. Therefore, if you think it would be a reasonable approach to have a brand new configuration option for enabling built-in logging despite being required as a module, I'm happy to submit a PR for it. |
Let me take a look at the code first to check how you're using and how the require mode works then I'll get back to you. |
This issue has been automatically marked as idle and stale because it hasn't had any recent activity. It will be automtically closed if no further activity occurs. If you think this is wrong, or the problem still persists, just pop a reply in the comments and @remy will (try!) to follow up. |
nodemon -v
:3.1.0
node -v
:20.10.0
node:20.10.0-alpine3.19
I am using nodemon as a module, according to this documentation - https://github.com/remy/nodemon/blob/main/doc/requireable.md
The documentation does in fact work, however, the logging that I'm used to seeing when running nodemon was noticeably absent. I even imported the nodemon utils file and called
utils.log.info
, but it produced no log. After longer than I care to admit, I figured out that the culprit here was theisRequired
getter on the nodemon utils.Expected behaviour
I can enable / disable the logger, so that I can see the normal nodemon logs rather than needing to reimplement them myself with a different logging solution.
Actual behaviour
If I require the module, I have no built-in option for getting the normal logging working.
Steps to reproduce
.js
file (I created a.cjs
file because I'm using ESM, e.g.{ "type": "module" }
in my package.json, I will test this with ESM laterchmod +x path/to/script.js
.js
file (see code block below)./path/to/script.js
[nodemon]
Here is the script I used:
P.S. I suspect that this issue from a decade ago may have been related - #301
EDIT: I was able to get this working with ESM. here it is if anyone is interested:
The text was updated successfully, but these errors were encountered: