Может иметь только один анонимный вызов определения для каждого файла сценария.

Я создаю редактор 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'
    });
 });

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

Некоторый фрагмент кода, который вы загружаете, вызывает определение с анонимным идентификатором модуля. Ты мог бы:

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

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

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

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

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


person Saurabh Sharma    schedule 08.03.2019    source источник


Ответы (2)


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

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

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

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

person Alberto Castillo G    schedule 15.03.2019

Я пытался создать скрипт по тегам, но получил предупреждение: «Можно иметь только одно анонимное определение», поэтому я просто перезаписываю его:

        this.temp_define = window['define'];
        head.appendChild(loaders);
        window['define'] = undefined;
person Tiffany    schedule 07.02.2021