Подтвердить что ты не робот

Могу ли я использовать JSPM без транспилера?

Я использую jspm 0.16.2.

Я использую этот тестовый проект

Когда я установил Transpiler в none: transpiler: "none"

Я получаю сообщение об ошибке XHR error (404 Not Found) loading http://localhost:53404/none.js

Если я установил транспилятор в "test", он даст ту же ошибку, за исключением того, что он ищет test.js

Это ошибка с jspm?

Я не хотел использовать transpiler, но используйте system.js для загрузки модулей AMD.

Когда я удалил опцию transpiler из config.js, он пытается загрузить Traceur.

Я бы не хотел, чтобы Transpiler работал во время выполнения.

4b9b3361

Ответ 1

Не понятно, что вы пытаетесь сделать. Если вы используете функции ES2015 (например, модули ES2015, let и т.д.), Вам нужен транспилер. Если вы напишете свой код без функций ES2015, то транспилятор не будет загружен. Вы можете проверить это, поместив код ES5 в main.js и проверив вкладку "Сеть" вашего отладчика. browser.js не будет загружен.

Строка, которую вы вставляете для transpiler в System.config, буквально является файлом транспилятора. В случае "babel" он отображается на npm:[email protected] (из поля map), который в сочетании с полем path ссылается на jspm_packages/npm/[email protected], а затем в этом каталоге файл .jspm.json указывает на запись укажите browser.js, который сам является файлом транспилятора на стороне клиента.

Какую бы строку вы не установили transpiler to, jspm настроит System, чтобы указать на нее (путь будет просто baseURL, если вы не отобразили его), и выберите его. Конечно, это не для любой произвольной строки, такой как none или test. По умолчанию, если вы ничего не указываете, как вы заметили, это traceur.

У вас есть возможность перераспределить серверную сторону, выполнив jspm bundle, если переключение на стороне клиента - это то, чего вы пытаетесь избежать.

Для кода, который использует только ES5 и AMD, без пересылки, проверьте ветвь no-transpile указанного выше репо. Обратите внимание, что browser.js не загружается, даже если transpile по-прежнему установлен на "babel".