{"library":"modulator","title":"Modulator","description":"Modulator is a legacy JavaScript build tool designed to bundle Node.js CommonJS modules for execution in non-CommonJS environments, primarily web browsers. It achieves this by creating a shallow representation of the filesystem and a dummy CommonJS module API, outputting everything into a single source file. It also supports optional minification using UglifyJS. The package is currently at version 0.1.0, with its last known activity dating back to 2011. Due to its age, it predates modern JavaScript module systems like ESM and contemporary bundlers such as Webpack, Rollup, or esbuild. Its key differentiator at the time was its simplicity and direct use for browser compatibility of Node.js modules, without requiring complex build configurations or additional binaries.","language":"javascript","status":"abandoned","last_verified":"Sun Apr 19","install":{"commands":["npm install modulator"],"cli":null},"imports":["const Modulator = require('modulator');","const myBuild = window.myBuildName; // Or this.myBuildName after script inclusion","const moduleFoo = myBuild.require('moduleFoo');"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"const Modulator = require('modulator');\nconst path = require('path');\n\nconst projectRoot = __dirname;\n\n// A dummy source file for the example\n// In a real scenario, this would be part of your project structure\nconst sourceContent = `\n    const moduleFoo = require('moduleFoo');\n    const scriptBar = require('./scriptBar');\n    exports.foo = moduleFoo;\n    exports.bar = scriptBar;\n    exports.version = '1.0.0';\n`;\n\n// Create dummy files for the example to make it runnable\nrequire('fs').writeFileSync(path.join(projectRoot, 'source.js'), sourceContent);\nrequire('fs').mkdirSync(path.join(projectRoot, 'node_modules', 'moduleFoo'), { recursive: true });\nrequire('fs').writeFileSync(path.join(projectRoot, 'node_modules', 'moduleFoo', 'index.js'), 'exports.name = \"moduleFoo\";');\nrequire('fs').writeFileSync(path.join(projectRoot, 'scriptBar.js'), 'exports.name = \"scriptBar\";');\n\nconst build = new Modulator({\n    name: 'myBuild',\n    main: './source.js',\n    from: projectRoot,\n    write: path.join(projectRoot, 'output.js'),\n    uglify: path.join(projectRoot, 'output-min.js'), // Requires 'uglify-js' to be installed separately\n    header: '//myBuild generated on ' + new Date().toISOString(),\n    footer: '//End of myBuild',\n    apiName: 'myBuildApi'\n});\n\nbuild.compile();\n\nconsole.log('Build completed. Check output.js and output-min.js (if uglify-js is installed).');","lang":"javascript","description":"This example demonstrates how to use Modulator as a Node.js build tool to bundle CommonJS modules into a single JavaScript file suitable for browser execution, including creating dummy source files for a runnable example.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}