Navigation

    MagicMirror Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • Donate
    • Discord

    Integrating an npm module that uses import

    Development
    4
    13
    104
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • lavolp3
      lavolp3 Module Developer last edited by sdetweil

      HI all,

      I am trying to write a module around the npm module picnic-api that uses the import function instead of require

      import axios from "axios";
      

      This does not work within the Magicmirror environment, I get an error message when I start the mirror.

      [13.02.2021 07:21.43.938] [ERROR] /home/pi/MagicMirror/modules/MMM-Picnic/node_modules/picnic-api/index.js:1
      import axios from "axios";
      ^^^^^^
      
      SyntaxError: Cannot use import statement outside a module
      

      Does anyone have a solution for me?
      Is there a way to use it or do I need to rewrite the npm module?

      strawberry 3.141 1 Reply Last reply Reply Quote 0
      • strawberry 3.141
        strawberry 3.141 Project Sponsor Module Developer @lavolp3 last edited by

        @lavolp3 which version of nodejs are you running? import is a feature of es6 modules. You can try to enable it like this https://stackoverflow.com/a/45854500

        lavolp3 1 Reply Last reply Reply Quote 1
        • lavolp3
          lavolp3 Module Developer @strawberry 3.141 last edited by

          @strawberry-3-141 said in Integrating an npm module that uses import:

          @lavolp3 which version of nodejs are you running? import is a feature of es6 modules. You can try to enable it like this https://stackoverflow.com/a/45854500

          Thanks for the tip. Upgraded to node.js 14.15 but did not work yet.
          Seeing "type": "module in my package.json also did not help.
          I will have to have a closer look at the link

          S karsten13 2 Replies Last reply Reply Quote 0
          • S
            sdetweil @lavolp3 last edited by sdetweil

            @lavolp3 yiu can also use

            const ax = require('axios')
            

            in node_helper.js
            after npm install axios

            lavolp3 1 Reply Last reply Reply Quote 0
            • lavolp3
              lavolp3 Module Developer @sdetweil last edited by lavolp3

              @sdetweil that’s not sufficient. There are two more modules imported by the picnic-api module. I could require them all in node_helper but that looks too of much a workaround for me. There should be another way.

              S 1 Reply Last reply Reply Quote 0
              • S
                sdetweil @lavolp3 last edited by

                @lavolp3 sometimes u get to do things that arent perfect. but get to move on.

                1 Reply Last reply Reply Quote 0
                • karsten13
                  karsten13 @lavolp3 last edited by

                  @lavolp3

                  • rename node_helper.js to node_helper.mjs

                  worked in my test (did not do anything with the imported axios, but mm starts).

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    sdetweil @karsten13 last edited by

                    @karsten13 was node_helper loaded? i doubt it. its optional. so this doesnt help

                    karsten13 1 Reply Last reply Reply Quote 0
                    • karsten13
                      karsten13 @sdetweil last edited by

                      @sdetweil no 😢

                      may using esm library is one approach as described e.g. here https://blog.logrocket.com/how-to-use-ecmascript-modules-with-node-js/

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        sdetweil @karsten13 last edited by sdetweil

                        @karsten13 in node… but we have a custom environment, that is not node pure…

                        1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 1 / 2
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Paul-Vincent Roll and Rodrigo Ramírez Norambuena.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy