Como você configura uma configuração de require.js com texto tipográfico?

Ok, eu tenho lido muitas perguntas e respostas sobre isso, e muito disso é lixo.

Eu tenho uma pergunta muito simples. Como faço o equivalente a isso:

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

Em texto datilografado?

Isso não funciona:

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.

Compilando com o sinalizador --module, com um dummy blah.ts, o shim é compilado, mas a saída é:

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

    console.log(b);
});

Parece que pode funcionar, mas na verdade não, o require.config édentro o bloco de exigência, está definidodepois de já é necessário.

TÃO! Acabei até agora comesta como uma solução:

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);
});

O que parece terrível.

Portanto, seja claro, dentro de módulos que dependem um do outro, esse tipo de coisa funciona perfeitamente:

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

Eu só preciso de uma maneira adequada de definir a configuração do requirejs em um nível superior, para que os caminhos importados para os vários módulos nomeados estejam corretos.

(... e isso ocorre porque, em grande parte, as dependências de terceiros são resolvidas usando o bower e instaladas no / lib / blah, onde os arquivos shim que tenho para suas definições estão em src / deps / blah.d.ts, para que os caminhos de importação padrão estejam incorretos após mover os arquivos dos módulos gerados para / js / no site)

NB. Eu mencionei jquery aqui, mas o problema énão que jquery não funciona propriedade como um módulo AMD; Eu tenho um arquivo shquer jquery.ts.d para isso. O problema aqui é os caminhos do requirejs.

questionAnswers(3)

yourAnswerToTheQuestion