XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    SyntaxError: Cannot use import statement outside a module

    Scheduled Pinned Locked Moved Solved Xen Orchestra
    14 Posts 6 Posters 5.2k Views 2 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.
    • aqua-calcA Offline
      aqua-calc @olivierlambert
      last edited by aqua-calc

      @olivierlambert Still getting the same error:

      root@xenorchestra:/opt/xen-orchestra/packages/xo-server# yarn start
      yarn run v1.22.5
      $ node dist/cli.mjs
      (node:3490) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
      (Use `node --trace-warnings ...` to show where the warning was created)
      /opt/xen-orchestra/packages/xo-server/dist/xapi/mixins/index.js:2
      import _gpu, * as __gpu from "./gpu";
      ^^^^^^
      
      SyntaxError: Cannot use import statement outside a module
          at wrapSafe (internal/modules/cjs/loader.js:984:16)
          at Module._compile (internal/modules/cjs/loader.js:1032:27)
          at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
          at Module.load (internal/modules/cjs/loader.js:933:32)
          at Function.Module._load (internal/modules/cjs/loader.js:774:14)
          at ModuleWrap.<anonymous> (internal/modules/esm/translators.js:199:29)
          at ModuleJob.run (internal/modules/esm/module_job.js:152:23)
          at async Loader.import (internal/modules/esm/loader.js:177:24)
          at async Object.loadESM (internal/process/esm_loader.js:68:5)
      error Command failed with exit code 1.
      info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
      
      julien-fJ 1 Reply Last reply Reply Quote 0
      • olivierlambertO Offline
        olivierlambert Vates 🪐 Co-Founder CEO
        last edited by olivierlambert

        Then I don't know. @julien-f might be around tomorrow to check if it rings any bell.

        edit: as usual, double check you are on latest commit from master.

        1 Reply Last reply Reply Quote 0
        • julien-fJ Offline
          julien-f Vates 🪐 Co-Founder XO Team @aqua-calc
          last edited by

          @aqua-calc Make sure the repo is clean and there are no untracked files (git status).

          aqua-calcA 1 Reply Last reply Reply Quote 1
          • aqua-calcA Offline
            aqua-calc @julien-f
            last edited by

            @julien-f I did fresh install, with config exported from the original xenorchestra server and then imported into the new server

            J 1 Reply Last reply Reply Quote 0
            • J Offline
              jmrapin @aqua-calc
              last edited by jmrapin

              @aqua-calc, I have the same issue....
              building at commit level a204b6fb3f1236dc5f4519a734c4d5c8f99f9e9c
              and I am getting the same error. Cleaned all a did a fresh git pull --ff-only

              yarn run v1.22.5
              $ node dist/cli.mjs
              (node:3448) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
              (Use node --trace-warnings ... to show where the warning was created)
              /root/xen-orchestra/packages/xo-server/dist/xapi/mixins/index.js:2
              import _gpu, * as __gpu from "./gpu";
              ^^^^^^

              SyntaxError: Cannot use import statement outside a module
              etc...

              The yarn build command produces those files (there is something wrong somewhere, why does the build produces index.js when there is the index.mjs?)

              So

              1. delete /packages/xo-server/dist/xapi/mixins/index.js (rm index.js)
              2. delete /packages/xo-server/dist/xapi/mixins/index.js.map (rm index.js.map)
              3. remove the import and export statements referencing index.js from file /packages/xo-server/dist/xapi/mixins/index.mjs (nano index.mjs)

              and did the same as above for /packages/xo-server/dist/api/index.js
              and same for /packages/xo-server/dist/xo-mixins/index.js

              And then yarn start and it starts and orchestra is fine as far as I can see.

              Not sure if that's the best but it got me going . Hope this helps someone.

              julien-fJ aqua-calcA I 3 Replies Last reply Reply Quote 0
              • julien-fJ Offline
                julien-f Vates 🪐 Co-Founder XO Team @jmrapin
                last edited by

                @jmrapin You still hav untracked index.js files in xo-server/src, please remove them and rebuild.

                J 1 Reply Last reply Reply Quote 0
                • J Offline
                  jmrapin @julien-f
                  last edited by

                  @julien-f well spotted. Thanks!
                  All good now.

                  1 Reply Last reply Reply Quote 0
                  • aqua-calcA Offline
                    aqua-calc @jmrapin
                    last edited by

                    @jmrapin Thank you!

                    1 Reply Last reply Reply Quote 0
                    • I Offline
                      iron_man @jmrapin
                      last edited by

                      @jmrapin good job! after removing the untracked files, problem wasn't solved, and then i followed your instructions and it worked, thanks a lot!

                      1 Reply Last reply Reply Quote 0
                      • ronaldgevernR Offline
                        ronaldgevern
                        last edited by

                        This error can happen in different cases depending on whether you're working with JavaScript on the server-side with Node.js , or client-side in the browser. There are several reasons behind "Cannot use import statement outside a module" error, and the solution depends on how you call the module or script tag.

                        Add type="module" inside the script tag

                        When working with ECMAScript modules and JavaScript module import statements in the browser, you'll need to explicitly tell the browser that a script is module. To do this, you have to add type="module" onto any ‹script› tags that point to a JavaScript module. Once you do this you can import that module without issues.

                        <script type="module" src="./index.js"></script>
                        

                        If you are working on Node.js or react applications and using import statements instead of require to load the modules, then ensure your package.json has a property "type": "module" as shown below.

                        {
                          // ...
                          "type": "module",
                          // ...
                        }
                        
                        1 Reply Last reply Reply Quote 0

                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                        With your input, this post could be even better 💗

                        Register Login
                        • First post
                          Last post