Main: How do i require modules that have example
field in it's package.json
?
For example:
const path = require( "path" );
const glob = require( "glob" );
const modules = glob.sync( './node_modules/*' );
for ( let mod in modules ) {
const modPackage = require( path.resolve( __dirname, "node_modules", mod, "package.json" ) );
if ( modPackage.hasOwnProperty( "example" ) ) {
console.log( "Module:", mod, "Has Field 'example'" );
}
}
Addiotinal: How do i require modules that have a specific tag? (for example: "demo")
It looks to me like your code is basically correct, just two issues:
for-of
, not for-in
./node_modules/
to the path.So:
const path = require( "path" );
const glob = require( "glob" );
const modules = glob.sync( './node_modules/*' );
for (let mod of modules ) {
// ----------^^
const modPackage = require( path.resolve( __dirname, mod, "package.json" ) );
// ------------------------------------------------------^
if ( modPackage.hasOwnProperty( "example" ) ) {
console.log( "Module:", mod, "Has Field 'example'" );
}
}
You almost never want to use for-in
on arrays. More about looping through arrays in this question's answers.