Jak skonfigurować konfigurację require.js za pomocą maszynopisu?

Ok, czytałem wiele pytań i odpowiedzi na ten temat, a wiele z nich to śmieci.

Mam bardzo proste pytanie. Jak zrobić odpowiednik tego:

require.config({
    paths: {
        "blah": '/libs/blah/blah',
    }
}); 
require(['blah'], function(b) {
    console.log(b); 
});

W maszynopisie?

To nie działa:

declare var require;
require.config({
    paths: {
        "blah": '/libs/blah/blah',
    }
});
import b = require('blah');
console.log(b);

s.ts(8,1): error TS2071: Unable to resolve external module ''blah''.
s.ts(8,1): error TS2072: Module cannot be aliased to a non-module type.
error TS5037: Cannot compile external modules unless the '--module' flag is provided.

Kompilowanie z flagą --module, z kompilacją manekinów bla.ts, ale dane wyjściowe to:

define(["require", "exports", 'blah'], function(require, exports, b) {
    require.config({
        paths: {
            "blah": '/libs/blah/blah'
        }
    });

    console.log(b);
});

Wygląda na to, że może działać, ale w rzeczywistości nie, require.config jestwewnątrz blok wymagania, jest ustawionypo jest już potrzebny.

WIĘC! Skończyłem tak dalekoto jako rozwiązanie:

class RequireJS {

    private _r:any = window['require'];

    public config(config:any):void {
        this._r['config'](config);
    }

    public require(reqs:string[], callback:any):void {
        this._r(reqs, callback);
    }
}

var rjs = new RequireJS();
rjs.config({
    paths: {
        "jquery": '/libs/jquery/jquery',
        "slider": '/js/blah/slider'
    }
});

rjs.require(['slider'], function(slider) {
    console.log(slider);
});

Co wydaje się okropne.

Tak więc, jasne jest, że w modułach, które zależą od siebie, tego typu rzeczy działają doskonale:

import $ = require('jquery');
export module blah {
   ...
}

Potrzebuję tylko właściwego sposobu ustawienia config requires na najwyższym poziomie, aby importowane ścieżki dla różnych nazwanych modułów były poprawne.

(... a to dlatego, że w dużej mierze zależności innych firm są rozwiązywane za pomocą bowera i instalowane w / lib / blah, gdzie jako pliki shim, które mam dla ich definicji, znajdują się w src / deps / blah.d.ts, więc domyślne ścieżki importu są niepoprawne po przeniesieniu wygenerowanych plików modułów do / js / na stronie)

NB. Wspomniałem tutaj o jquery, ale problem polega na tymnie ten jquery nie działa jako moduł AMD; Mam do tego plik shim jquery.ts.d. Problemem są tu ścieżki wymagające.

questionAnswers(3)

yourAnswerToTheQuestion