Как использовать `request.js` от Octokit в браузере?

Я новичок в JavaScript. Несмотря на то, что я запускаю примеры непосредственно в readme, у меня это не работает.
Вот простой случай, когда я пытаюсь узнать количество моих (пользовательских) репозиториев.

У меня есть следующий html-файл (без 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>

ОШИБКА

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'

Затем я попытался загрузить сам файл js и включить его в тег скрипта обычным способом, но я не вижу никаких request.js файл в src папка, все .tsфайлы. Я не знаю, как это понять.

Любая помощь будет оценена.

1 ответ

Решение

После разговора с авторами библиотеки выяснилось, что проблема связана с плохим выпуском. Исправлено в версии 5.3.1. Следующий пример работает сейчас -

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

Живая демонстрация здесь.

Другие вопросы по тегам