Я использую Angular, TypeScript и синтаксис модуля ES6. Предположим, у меня есть модуль, определенный следующим образом:
// SubModule.ts
import MyService from 'services/MyService';
export default angular.module('subModule', [])
.service('myService', MyService);
Скомпилированный JavaScript будет:
var MyService_1 = require('services/MyService');
exports.default = angular.module('subModule', [])
.service('myService', MyService_1.default);
Мое приложение зависит от этого модуля. Итак, в файле App.ts у меня есть следующее:
// App.ts
import SubModule from 'modules/SubModule';
angular.module('app', [SubModule.name]);
Со следующим скомпилированным JavaScript:
var SubModule_1 = require('modules/SubModule');
angular.module('app', [SubModule_1.default.name]);
Итак, теперь я пытаюсь связать это для браузера. В настоящее время я пытаюсь использовать Browserify, но я готов использовать любой доступный инструмент для связывания. Browserify дает мне ошибку, например:
Не удается найти модуль «modules/SubModule» из «C:\the\path\to\my\app»
Итак, как мне заставить Browserify работать? Или есть другой инструмент, который будет работать лучше? Я нашел эту проблему на Github, которая, кажется, говорит о том, что экспорт по умолчанию из TypeScript несовместим с CommonJS а>. Итак, что мне делать?
EDIT Итак, я думаю, что нашел проблему. Browserify требует, чтобы локальные пути начинались с ./
. Так, например, мне нужно будет сослаться на мой подмодуль следующим образом:
import SubModule from './modules/SubModule';
Кто-нибудь знает о плагине Browserify, который будет автоматически искать относительный путь, даже если я не укажу ./
? Мое приложение довольно большое, и я не хочу проходить и изменять все операторы импорта.
Или, с другой стороны, есть ли опция компилятора TypeScript для выдачи './modules/SubModule'
вместо 'modules/SubModule'
?
./
, вы можете посмотреть на github.com/substack/browserify-handbook#avoiding -а> - person hgoebl   schedule 29.09.2015