gray-matter icon indicating copy to clipboard operation
gray-matter copied to clipboard

grey-matter does not import as a function when using import statements

Open requestforcriticism opened this issue 11 months ago • 2 comments

Getting an error when trying to run the following hello world example, I get an error where the matter export is not a function.

Offending code:

import * as matter from 'gray-matter';
console.log(matter('---\ntitle: Front Matter\n---\nThis is content.'));

Resulting error:

TypeError: matter is not a function
    at file:///C:/path/to/index.js:13:13
    at ModuleJob.run (node:internal/modules/esm/module_job:218:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:329:24)
    at async loadESM (node:internal/process/esm_loader:28:7)
    at async handleMainPromise (node:internal/modules/run_main:113:12)

When I edit the export line in grey-matter/index.js in node modules to display:

module.exports = {matter};

I can then import and run the marked package like this just fine:

import { matter } from 'gray-matter';
console.log(matter('---\ntitle: Front Matter\n---\nThis is content.'));

Are node packages with "type":"module" not supported or is this behavior a bug?

requestforcriticism avatar Feb 29 '24 03:02 requestforcriticism

You can also just do import { default as matter } from 'gray-matter' and it should resolve it. This package should definitely play nicer with modules.

robotastronaut avatar Apr 23 '24 14:04 robotastronaut

You can also just do import { default as matter } from 'gray-matter' and it should resolve it. This package should definitely play nicer with modules.

I have a error: Buffer is not defined

AaronConlon avatar Aug 13 '24 21:08 AaronConlon