не могу найти Требуется. js - PullRequest
1 голос
/ 08 марта 2020

У меня есть старое приложение-браузер с несколькими зависимостями, которые я хочу перенести в TypeScript. Поэтому я использовал следующее в моем app.ts и скомпилировал его с ES6 с AMD (надеюсь, AMD подходит для браузера):

import * as L from 'leaflet';
import * as LG from 'leaflet-geosearch';
import * as $ from 'jquery';
import * as d3 from 'd3';

, который скомпилирован в следующее:

define(["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
});
//# sourceMappingURL=app.js.map

Я ссылаюсь на следующее HTML:

<head>
    <script src="scripts/app.js"></script>
</head>

Когда я загружаю это в свой браузер, я получаю

Uncaught ReferenceError: define не определено

Так что я искал и узнал, что это, скорее всего, ошибка с Require JS. Следуя документам из Require JS в https://requirejs.org/docs/node.html. Я скачал Require JS с NPM, потому что я уже установил зависимость для листовки через NPM. Вместо того, чтобы ссылаться на мой app.js в моем HTML, у меня теперь есть это:

<head>
  <script>
    var requirejs = require('requirejs');
    requirejs.config({ nodeRequire: require });

    requirejs(['leaflet', 'scripts/app.js']);
  </script>
</head>

Однако теперь я получаю

Требуется не определено

1 Ответ

0 голосов
/ 09 марта 2020

В браузере нет функции require. Вы явно включили Require JS в браузере:

<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
<script>
require(['leaflet', 'scripts/app.js']);
</script>

Это загрузит Require JS, но, вероятно, оно сломается, потому что пути к leaflet могут быть неправильными. Но я думаю, вы можете это исправить:)

...