next-mjml
TypeScript icon, indicating that this package has built-in type declarations

1.2.1 • Public • Published

next-mjml

next-mjml is a Node.js package designed to enable Next.js to understand how to import MJML (markup language for responsive email) files. This plugin adds the ability to load MJML files in a similar fashion to how images are loaded, but instead of a file path, it returns a parsed HTML string. The package depends on mjml.

Installation

To install next-mjml and its dependencies, use npm or yarn:

npm install next-mjml mjml

or

yarn add next-mjml mjml

Usage

  1. Create or open your next.config.js file.

  2. Import next-mjml at the beginning of the file:

const { withMJML } = require('next-mjml');
  1. Define any MJML options you want to customize (optional):
const mjmlOptions = {
  // Add your MJML options here as key-value pairs
  minify: true,
  beautify: false,
  // ...
};
  1. Use the withMJML function and pass in the mjmlOptions object as an argument:
module.exports = withMJML(mjmlOptions)({
  // Your Next.js configuration options go here
});

Example

Here's an example of how to use next-mjml in your Next.js project:

  1. Create an MJML file named email.mjml in the root of your project:
<!-- email.mjml -->
<mjml>
  <mj-body>
    <mj-section>
      <mj-column>
        <mj-text>Hello World!</mj-text>
      </mj-column>
    </mj-section>
  </mj-body>
</mjml>
  1. Import and use the MJML file:
// pages/api/user.js
...
import mailer from "..."
import email from './email.mjml'; // Use the mjml file as a regular import
...

export default handler(req, res) {
    if (req.method === 'POST') {
        mailer.sendEmail(email, "example@example.com");
    }
    ...
}

MJML Options

The mjmlOptions object allows you to customize the MJML compilation process according to your specific needs. You can refer to the official mjml documentation to explore the available options and their usage.

Important Note: Be cautious when using mjmlOptions and make sure the options are compatible with the version of mjml installed in your project.

Credits

This package was inspired by the need to seamlessly integrate MJML files into Next.js projects, allowing developers to work with responsive email templates more efficiently.

If you encounter any issues or have suggestions for improvements, feel free to open an issue or submit a pull request on the GitHub repository.

License

next-mjml is open-source software licensed under the MIT license.

Package Sidebar

Install

npm i next-mjml

Weekly Downloads

4

Version

1.2.1

License

MIT

Unpacked Size

21.9 kB

Total Files

20

Last publish

Collaborators

  • oscaroox