The EJS Compiler is a CLI tool for compiling .ejs templates into a single JavaScript file. This simplifies including precompiled views in your projects, improving efficiency and maintainability.
Compatibility: Node 16.14.0 and later
- Compiles all
.ejsfiles, including nested ones, into a single JavaScript file. - Supports detailed compilation logs for debugging and verification.
- Works cross-platform (Windows, macOS, Linux).
- Easy-to-use CLI interface or programmatic integration.
- Dual module support: Works with both ES Modules (import) and CommonJS (require).
To install globally for CLI usage:
npm install -g ejsc-viewsFor usage in a specific project programmatically:
npm install ejsc-viewsRun the compiler directly via the terminal.
ejsc [options]| Option | Description | Default |
|---|---|---|
-v, --views <views> |
Directory containing .ejs templates. |
views |
-o, --output <output> |
Directory for the compiled JavaScript output file. | public/js |
-d, --details |
Display detailed logs during the compilation. | Off |
-h, --help |
Display help for the CLI. | N/A |
-
Compile
.ejstemplates insrc/viewsand save the output indist/js:ejsc --views src/views --output dist/js
-
Compile with detailed logs enabled:
ejsc --views src/views --output dist/js --details
You can integrate the compiler into your Node.js scripts. The package supports both ES Modules (import) and CommonJS (require).
import { compile } from "ejsc-views";
const viewsDir = "src/views";
const outputDir = "dist/js";
const details = true; // Enable detailed logs
compile(viewsDir, outputDir, details);const { compileAsync } = require("ejsc-views");
// Using async/await
(async () => {
await compileAsync("src/views", "dist/js", true);
})();Note: When using require(), you must use the compileAsync() function with async/await due to ES module loading requirements.
| Parameter | Type | Description | Default |
|---|---|---|---|
viewsDir |
String | Directory containing .ejs templates. |
"views" |
outputDir |
String | Directory for the compiled JavaScript output file. | "public/js" |
details |
Boolean | Whether to display detailed logs during compilation. | false |
cwd |
String | Working directory (optional). | process.cwd() |
The output is a single JavaScript file containing all compiled .ejs templates. By default, this file is saved as public/js/views.js.
The compiled file includes:
- Precompiled views as functions.
- A helper function
ejs.views_includefor including templates programmatically.