2016-08-07 3 views
0

Я новичок в машинописных текстах, нокаутах и ​​запросах. Я создал демо-версию, используя эти файлы. Теперь я хочу реализовать небольшую логику с помощью машинописных и нокаутов.Uncaught ReferenceError: define не определен typescript

Я создал 4-5 машинописных файлов, которые импортируются изнутри. Когда я запускаю html-файл. Я получаю сообщение об ошибке. под названием

enter image description here Может кто-нибудь помочь мне в этой ошибке. Что мне не хватает в этом коде.

имеют поиск в google и проводят достаточно хорошее время, но не нашли правильных решений. Он должен быть связан с требованием JS для определения всех модулей. Но, поскольку новый в requireJS не способен догнать это. У меня также есть поиск stackoverflow для аналогичной ошибки, но это не помогает мне.

В ожидании решения

+0

Сообщите, пожалуйста, файл 'demotest.htm'. –

ответ

8

Здесь ваш машинопись составил счастливо, в код, который будет работать в среде requireJS (Технически, AMD среды). Это означает, что он генерирует вывод, который предполагает, что define/require и т. Д. Все уже существуют.

Общий ответ заключается в том, что вам необходимо включить RequireJS, прежде чем вы будете зависеть от вашего скомпилированного кода.

В частности, ошибка говорит о том, что вы сделали отдельную ошибку: вы напрямую зависите от скриптов модуля RequireJS (т. Е. В вашем HTML-теге есть тег <script src="my-compiled-code.js"></script>). Это не значит, что модули работают. Вместо этого, после того, как вы создали RequireJS, у вас должен быть один стартовый сценарий верхнего уровня (встроенный в ваш HTML или отдельный файл), который настраивает RequireJS, а затем require() - файлы верхнего уровня вашего приложения для запуска все выключено. Вы можете загрузить этот файл вручную или с помощью атрибута RequirejS «data-main».

Например, минимальный HTML выглядит примерно так:

<!DOCTYPE html> 
<html> 
    <head> 
     <script data-main="scripts/main" src="scripts/require.js"></script> 
    </head> 
    <body> 
    </body> 
</html> 

Это загрузит RequireJS из «сценариев/require.js», а затем сообщает ему, чтобы загрузить скрипт в «Сценарии/main.js», чтобы начать (вы, вероятно, захотите обновить оба пути), обратите внимание, что для передачи данных не требуется расширение .js).

Основной сценарий должен быть затем что-то очень простое, как:

// Set up any config you need (you might not need this) 
requirejs.config({ 
    basePath: "/scripts" 
}); 

// Tell RequireJS to load your main module (and its dependencies) 
require("mainmodule"); 

Как правило, это не машинопись проблемы вы боретесь здесь, это RequireJS. Я бы попробовал потратить немного больше времени на игры с требованием (может быть, в чистом JavaScript, так что это яснее) и глядя на рабочие примеры для этого, чтобы вы могли сначала запустить этот бит, а затем добавить остальные.

+0

Yup, Вы были правы. Проблема решена. Ошибка заключалась в том, что я включил файл require.js и два других файла, которые уже объявлены в файле require.js. Проблема была в demotest.htm Спасибо за помощь –

Смежные вопросы