Code Monkey home page Code Monkey logo

Comments (1)

laustdeleuran avatar laustdeleuran commented on August 10, 2024

+1

SyntaxError: Cannot use import statement outside a module

Steps to reproduce

  1. Clone this repo.
  2. Add dependencies: yarn add rehype-stringify remark-gfm remark-parse remark-rehype unified
  3. Add utility function and corresponding test:
    // src/format.ts
    import rehypeStringify from "rehype-stringify";
    import remarkGfm from "remark-gfm";
    import remarkParse from "remark-parse";
    import remarkRehype from "remark-rehype";
    import { unified } from "unified";
    
    export const format = (markdown: string) =>
      unified()
        .use(remarkParse)
        .use(remarkGfm)
        .use(remarkRehype)
        .use(rehypeStringify)
        .processSync(markdown)
        .toString();
    // src/format.test.ts
    import { format } from "./format";
    
    describe("format", () => {
      it("should parse markdown", () => {
        expect(format("# Headline")).toBe("<h1>Headline</h1>");
      });
    });
  4. Run yarn test and see error output:
     FAIL  src/format.test.ts
      ● Test suite failed to run
    
        Jest encountered an unexpected token
    
        This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.
    
        By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".
    
        Here's what you can do:
         • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/en/ecmascript-modules for how to enable it.
         • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
         • If you need a custom transformation specify a "transform" option in your config.
         • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.
    
        You'll find more details and examples of these config options in the docs:
        https://jestjs.io/docs/en/configuration.html
    
        Details:
    
        /typescript-boilerplate/node_modules/remark-gfm/index.js:6
        import {gfm} from 'micromark-extension-gfm'
        ^^^^^^
    
        SyntaxError: Cannot use import statement outside a module
    
        > 1 | import remarkGfm from "remark-gfm";
            | ^
          2 | import remarkParse from "remark-parse";
          3 | import remarkRehype from "remark-rehype";
          4 | import { unified } from "unified";
    
          at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1350:14)
          at Object.<anonymous> (src/format.ts:1:1)
    
    Test Suites: 1 failed, 1 passed, 2 total
    
  5. Weep.

from typescript-boilerplate.

Related Issues (9)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.