Может иметь только один анонимный вызов определения для каждого файла сценария - PullRequest
1 голос
/ 08 марта 2019

Я создаю редактор monaco, используя loader.js, но получаю сообщение об ошибке «Может быть только один анонимный вызов определения для файла сценария» 2 раза в консоли.

<script src="/monaco-editor/min/vs/loader.js"></script>

Код для создания редактора

require.config({ paths: { 'vs': '/monaco-editor/min/vs' }});
 require(['vs/editor/editor.main'], function() {                
    monacoEditor= monaco.editor.create(document.getElementById('coding-editor'), {
        value: [
        'function x() {',
        '\tconsole.log("Hello world!");',
        '}'
    ].join('\n'),
    language: 'javascript'
    });
 });

Я попытался найти проблему и нашел ниже связанный ответ:

Какой-то фрагмент кода, который вы загружаете, вызывает define с анонимным идентификатором модуля.Вы можете:

загрузить этот код через загрузчик AMD (то есть вручную), чтобы загрузчик AMD создал тег <script>.

загрузитьэтот код перед загрузчиком AMD (т. е. define не будет доступен для этого куска кода)

unset define для продолжительности оценки этого скрипта (т. е. если вы загрузите его с помощью <script>, затем сбросьте определение до и восстановите его потом)

попытайтесь сбросить define.jquery, AFAIK jquery может проверять это в функции определения

На этой странице уже много jquery, и я понимаю это из-за jQuery.Пожалуйста, помогите некоторым понять меня на собственном примере.Спасибо

1 Ответ

0 голосов
/ 15 марта 2019

У меня была такая же проблема сегодня утром, и я применил второе решение.

загрузить этот код до того, как загрузчик AMD (т. Е. Определение не будет доступно этому коду)

Это работает, потому что define вызывается изнутри jQuery анонимно, как говорится в ошибке. Объяснено далее на веб-сайте require.js , в котором используется функция загрузчика (define, require), аналогичная loader.js.

В моем случае я просто включил мой загрузчик после jQuery, чтобы define не сталкивались.

...