# ejs-prerender

> A tool for structured pre-rendering of EJS templates and partials

Latest version **1.1.1** (published 2022-03-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install ejs-prerender
pnpm add ejs-prerender
yarn add ejs-prerender
bun add ejs-prerender
```

Provides the command `ejs-prerender`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.1 |
| Published | 2022-03-28 |
| First published | 2019-11-24 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 9.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | David Ragsdale |
| Maintainers | wilderbeest |
| Keywords | ejs, prerender, ssr |

## Links

- npm: https://www.npmjs.com/package/ejs-prerender
- Repository: https://github.com/djragsdale/ejs-prerender
- Homepage: https://github.com/djragsdale/ejs-prerender#readme
- Issues: https://github.com/djragsdale/ejs-prerender/issues
- npm.io page: https://npm.io/package/ejs-prerender

## Dependencies (4)

- [ejs](https://npm.io/package/ejs.md) ^3.1.6
- [glob](https://npm.io/package/glob.md) ^7.1.5
- [debug](https://npm.io/package/debug.md) ^4.3.4
- [fs-extra](https://npm.io/package/fs-extra.md) ^10.0.1

## Recent versions

- 1.1.1 (latest) — 2022-03-28
- 1.1.0 — 2020-08-02
- 1.1.0-beta.1 — 2019-12-14
- 1.1.0-beta.0 — 2019-12-14
- 1.0.4-beta.1 — 2019-12-14
- 1.0.3 — 2019-11-26
- 1.0.2 — 2019-11-26
- 1.0.1 — 2019-11-25
- 1.0.0 — 2019-11-25
- 0.1.0 — 2019-11-24

## README

# ejs-prerender

## Usage

This package is typically used as a devDependency. Install by running `npm i -D ejs-prerender`. It can be used as an npm script like the following:

```
"build:templates": "ejs-prerender",
```

and run manually using `npx`:

```
npx ejs-prerender
```

This package utilizes the debug library, so adding `DEBUG=ejs-prerender:*` to a `.env` file or the command path (`DEBUG=ejs-prerender:* npx ejs-prerender`) will enable logging of everything.

## Recommended File Structure

The following file structure works out-of-the-box with no customized environment variables.

```
root
├ components/
│ └ head.ejs
└ pages/
  ├ about/
  │ └ index.ejs
  └ index.ejs
```

will render as

```
root
└ public/
  ├ about/
  │ └ index.html
  └ index.html
```

The components can be simply referenced inside EJS pages as seen below:

```html
<!DOCTYPE html>
<html>
  <head>
    <%- include('head') -%>
  </head>
  <body><h1>INDEX</h1></body>
</html>
```

## Configuration

### Environment Variables

| Option        | Environment Variable      | Type   | Default                   | Description                                          |
| ------------- | ------------------------- | ------ | ------------------------- | ---------------------------------------------------- |
| baseDir       | PEJS_BASE_DIR             | String | current working directory | Base directory to reference for other relative paths |
| outputDir     | PEJS_BUILD_OUTPUT_DIR     | String | 'public'                  | Where the completed pages get written                |
| componentsDir | PEJS_BUILD_COMPONENTS_DIR | String | 'components'              | Where components live                                |
| pagesDir      | PEJS_BUILD_PAGES_DIR      | String | 'pages'                   | Where pages live                                     |
| pageExtension | PEJS_BUILD_PAGES_EXT      | String | 'ejs'                     | File extension of pages                              |

---
_Source: https://npm.io/package/ejs-prerender · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
