Как использовать модуль машинописного текста в качестве импортируемого кода И в качестве внешнего кода для веб - PullRequest
0 голосов
/ 18 мая 2019

Мне нужен код javascript, который можно использовать в браузере как «прямую зависимость» через импорт тегов скрипта, и иметь такой же код, «импортируемый» в тестах jest или в более структурированном коде (например, в веб-приложении VueJS).

Причина в том, что у меня есть веб-приложение со множеством страниц с более простым javascript, использующим некоторые «общие» библиотеки (StringUtilities, RestUtilities и т. Д.): Все эти библиотеки написаны на Typescript как модуль, поэтому я могу использоватьвсе они напрямую, без какой-либо системы загрузчика модулей, веб-пакета или чего-либо еще: нужен только tsc.НО сейчас я делаю отличные вещи с VueJs и typcript и WebPack, и я хотел бы повторно использовать эти библиотеки (также хорошо протестированные с qunit), НО, когда я пытаюсь сделать некоторые тесты в Jest, я получаю ошибку, потому чтообщая библиотека отсутствует.

Все мои модули такие:

module MyOrg {
  export module Str {
    export function IsNullOrEmpty(val: string | null | undefined): boolean {
      return val === undefined || val === null || val === "";
    }
  }
}

На веб-странице я могу просто импортировать ее следующим образом:

<script src="js/MyOrg.Str.js"></script>

Инаконец, используйте его как:

if (MyOrg.Str.IsNullOrEmpty("")){
 //..
}

Тем временем я хотел бы иметь в своем приложении VueJs более современный подход, такой как:

export function IsNullOrEmpty(val: string | null | undefined): boolean {
      return val === undefined || val === null || val === "";
    }
...

import {IsNullOrEmpty} from "MyOrg.Str";


Я думаю, что, возможно, я смогу переписатьвсе модули в виде списка функций экспорта и их использования в унаследованном коде через систему сборки, которая преобразует функции в модуле: можно сделать?и как?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...