• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Integrating an npm module that uses import

Scheduled Pinned Locked Moved Development
13 Posts 4 Posters 3.0k Views 4 Watching
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.
  • L Offline
    lavolp3 Module Developer
    last edited by sdetweil Feb 13, 2021, 7:53 AM Feb 13, 2021, 6:25 AM

    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?

    How to troubleshoot modules
    MMM-soccer v2, MMM-AVStock

    S 1 Reply Last reply Feb 13, 2021, 7:14 AM Reply Quote 0
    • S Offline
      strawberry 3.141 Project Sponsor Module Developer @lavolp3
      last edited by Feb 13, 2021, 7:14 AM

      @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

      Please create a github issue if you need help, so I can keep track

      L 1 Reply Last reply Feb 13, 2021, 12:14 PM Reply Quote 1
      • L Offline
        lavolp3 Module Developer @strawberry 3.141
        last edited by Feb 13, 2021, 12:14 PM

        @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

        How to troubleshoot modules
        MMM-soccer v2, MMM-AVStock

        S K 2 Replies Last reply Feb 13, 2021, 1:19 PM Reply Quote 0
        • S Offline
          sdetweil @lavolp3
          last edited by sdetweil Feb 13, 2021, 1:19 PM Feb 13, 2021, 1:19 PM

          @lavolp3 yiu can also use

          const ax = require('axios')
          

          in node_helper.js
          after npm install axios

          Sam

          How to add modules

          learning how to use browser developers window for css changes

          L 1 Reply Last reply Feb 13, 2021, 2:15 PM Reply Quote 0
          • L Offline
            lavolp3 Module Developer @sdetweil
            last edited by lavolp3 Feb 13, 2021, 2:15 PM Feb 13, 2021, 2:15 PM

            @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.

            How to troubleshoot modules
            MMM-soccer v2, MMM-AVStock

            S 1 Reply Last reply Feb 13, 2021, 2:46 PM Reply Quote 0
            • S Offline
              sdetweil @lavolp3
              last edited by Feb 13, 2021, 2:46 PM

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

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              1 Reply Last reply Reply Quote 0
              • K Offline
                karsten13 @lavolp3
                last edited by Feb 13, 2021, 7:29 PM

                @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 Feb 13, 2021, 7:39 PM Reply Quote 0
                • S Offline
                  sdetweil @karsten13
                  last edited by Feb 13, 2021, 7:39 PM

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

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  K 1 Reply Last reply Feb 13, 2021, 8:06 PM Reply Quote 0
                  • K Offline
                    karsten13 @sdetweil
                    last edited by Feb 13, 2021, 8:06 PM

                    @sdetweil no :crying_face:

                    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 Feb 13, 2021, 8:15 PM Reply Quote 0
                    • S Offline
                      sdetweil @karsten13
                      last edited by sdetweil Feb 13, 2021, 8:36 PM Feb 13, 2021, 8:15 PM

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

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 1 / 2
                      1 / 2
                      • First post
                        1/13
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy