Reputation: 774
In python, when you import a module the statements inside the 'if name == main' block of the imported module is not executed.
Is there any equivalent approach which can prevents the execution of unwanted statements in the imported module in javascript?
Upvotes: 1
Views: 516
Reputation: 943556
Via fuyushimoya's comment.
When a file is run directly from Node, require.main is set to its module. That means that you can determine whether a file has been run directly by testing
require.main === module
For a file foo.js, this will be true if run via node foo.js, but false if run by require('./foo').
So:
if (require.main === module) {
// Code that runs only if the module is executed directly
} else {
// Code that runs only if the code is loaded as a module
}
Upvotes: 5