Я пытаюсь написать свой код интерфейса в TypScript и хочу экспортировать код, который мой браузер может загрузить в <script src="..."></script>
.Transpile машинописный текст для использования в браузере
Я сделал это с помощью браузера и tsify. Моя проблема в том, что не в моем коде доступно глобальное пространство имен. Загрузка сценария в тег <script>
будет выполнять его, конечно, но что, если я намерен загрузить его как библиотеку функций, которые могут использоваться в inline <script>
или аналогичные?
Обновление
В качестве примера можно
index.ts
function foo(): void {
console.log("bar");
}
Сборка со следующим конф производит следующие код JavaScript
tsconfig.json
{
"compilerOptions": {
"module": "UMD",
"target": "es5",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true
}
}
index.js
function foo() {
console.log("bar");
}
Это нормально. Однако, если index.js импортирует что-то, например. моя notification
функция, то я получаю это
(function (factory) {
if (typeof module === 'object' && typeof module.exports === 'object') {
var v = factory(require, exports); if (v !== undefined) module.exports = v;
}
else if (typeof define === 'function' && define.amd) {
define(["require", "exports", "./notifications"], factory);
}
})(function (require, exports) {
"use strict";
var notifications_1 = require("./notifications");
notifications_1.notification("blerp");
function foo() {
console.log("bar");
}
});
Теперь foo
обернут в некотором объеме, и не доступен, когда я загрузить его на моем сайте: <script src="require.js" data-main="index"></script>
foo is undefined
Для того, чтобы быть понятным, вы создаете несколько файлов машинописного текста, и вы используете browserfy для их компиляции. И тогда вы хотите, чтобы эти функции были доступны во всем мире? – vintem