Частичная интеграция typescript, angularjs, grunt

Добрый день,

Я хотел бы интегрировать машинописный текст в проект angularjs, который использует grunt. Я хотел бы сделать это шаг за шагом, чтобы не нужно было переписывать весь проект.

Причина в том, чтобы 1) повысить качество кода, используя для этого typescript и linting. 2) ввести модульность, потому что в настоящее время размер файла .js растет, и код становится менее читаемым.

В настоящее время проект использует grunt со следующими проектами:

'clean:dist',
    'clean:typescript',
    'ts',
    .......,
    'jsbeautifier',
    'less',
    'useminPrepare',
    'concat',
    'copy:dist',
    'cssmin',
    'uglify',
    'filerev',
    'usemin',
    'htmlmin'

Что происходит в этом рабочем процессе grunt, так это то, что часть машинописного текста компилируется, а каталог сборки машинописного текста включается в файл index.html. Итак, 'useminPrepare', 'concat', 'copy:dist', 'cssmin', 'uglify', 'filerev', 'usemin',

рабочий процесс успешно интегрирует машинописный код в vendor.js.

В настоящее время проблема заключается в том, что я получаю следующую ошибку при открытии в браузере.

Uncaught ReferenceError: exports is not defined Обсуждение проблемы переполнения стека

Но все советы в этом потоке не удаляют Object.defineProperty(exports, "__esModule", { value: true }); внутри скомпилированного кода javascript (от машинописного текста до ).

Я использовал <script>var exports = {};</script>, затем я получил ошибку Uncaught ReferenceError: module is not defined. Примечание. Я также включил <script src="bower_components/commonjs/common.js"></script>

Итак, я предполагаю, что мне нужно настроить браузер между 'useminPrepare' и 'usemin', но кажется, что usemin не поддерживает браузер.

Итак, мои вопросы:

  1. Как мне избавиться от этих ошибок и разумно интегрировать части, написанные на машинописном языке, в комплект.
  2. Любой совет или любой другой возможный способ частично интегрировать машинописный текст в проект angularjs и grunt?
  3. Если я на неправильном пути, и это невозможно или слишком сложно. Какой другой способ вы видите для достижения моих целей 1) и 2) (сверху)?

Спасибо большое за вашу помощь.

Привет, Тобиас


person Toby    schedule 16.04.2018    source источник


Ответы (1)


Я нашел ответ на этот вопрос: TS1148 ~ Как импортировать с --module: none и typescript 2.x

  1. Используйте 1_
  2. Используйте глобальный файл d.ts, как описано в ссылке выше.
  3. Используйте grunt и usemin. Поместите шаблон глобуса (подстановочные знаки) в свой HTML-файл, чтобы включить скомпилированные файлы машинописного текста <script src="xyz/build/tsc/**/*.js"></script>
person Toby    schedule 03.05.2018