Warm tip: This article is reproduced from stackoverflow.com, please click
javascript request github-api octokit-js

How to use `request.js` by Octokit on browser?

发布于 2020-03-27 15:47:10

I am a beginner with JavaScript. Even though I am directly running the examples on the readme, it doesn't work for me.
Here is a simple case where I try to get the number of my (user's) repositories.

I have the following html file (sans the api token) -

<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
    <script type="module">
        import { request } from "https://cdn.pika.dev/@octokit/request";
    </script>
    <script> 
        const octokitRequest = require('@octokit/request');
        myAsyncMethod()
        async function myAsyncMethod () {
            const result = await request("GET /users/:user/repos", {
                headers: {
                    authorization: "token <your token>"
                },
                user: "armsp"
                });
            console.log(`${result.data.length} repos found.`);
        }
    </script>   
</body>

ERROR

require.min.js:1 Uncaught Error: Module name "@octokit/request" has not been loaded yet for context: _. Use require([])
https://requirejs.org/docs/errors.html#notloaded
    at makeError (require.min.js:1)
    at Object.s [as require] (require.min.js:1)
    at requirejs (require.min.js:1)
    at github-api-test.html:11

github-api-test.html:1 Uncaught SyntaxError: The requested module '/universal-user-agent/^4.0.0/es2019/universal-user-agent.js' does not provide an export named 'default'

Then I tried to download the js file itself and include it in script tag the usual way, but I don't see any request.js file in src folder, all are .ts files. I don't know how to make sense of it.

Any help would be appreciated.

Questioner
jar
Viewed
55
jar 2020-01-31 17:18

After talking with the authors of the library, it seems like it was an issue with a bad release. It has been fixed with version 5.3.1. The following example works now -

    <script type="module">
      import { request } from "https://cdn.pika.dev/@octokit/request";

      myAsyncMethod();

      async function myAsyncMethod() {
        const result = await request("GET /");
        console.log(result.data);
      }
    </script>

Live Demo here.