6

Scripts/folder1、Scripts/folder2 などのフォルダーに編成された Javascript ファイルがいくつかあります。

requirejs.config.baseUrl を使用すると、Scripts/folder1 などのフォルダーがデフォルトとして定義されます。次に、requirejs.config.paths では、ファイル名だけでアドレス指定されるファイルもあれば、相対パス (../folder2/blabla など) でアドレス指定されるファイルもあります。

Typescipt ファイル folder2/blabla.ts をコーディングする場合、folder1 のモジュール「math」が必要です。だから私たちは書く

import MOD1 = module("../folder1/math");

Typescriptに関しては、なんでもいいです。モジュールを見つけることができます。ただし、requirejs には問題があります。モジュール「../folder1/math」を認識せず、「math」のみを認識します。

問題は、現在のディレクトリから開始することによって対処される、インポートステートメントがファイル名を期待しているようです。ただし、これは requirejs が認識しているモジュール ID ではありません。

requirejs 構成と Typescript の import ステートメントの両方で絶対パスを使用すると、問題が解決します。

私はこれを間違っていますか?または、絶対パスが進むべき道ですか?

4

2 に答える 2

8

baseUrlTypescript ファイルのルート フォルダーに相当する aを指定します。

require.config({
    baseUrl: './scripts', 
 }
)

次に、scripts フォルダーから始まる相対パスを使用すると、typescript で通常行うように import を実行でき、requirejs は同じ基本パスを使用します。

更新:このプレゼンテーションは、Typescript の質問から js を使用してすべての URL に回答する必要があります: http://www.youtube.com/watch?v=4AGQpv0MKsAコード付き: https://github.com/basarat/typescript-amd/blob /master/README.md

于 2013-05-05T01:59:34.213 に答える
2

必要な構成では、各モジュールのパスを指定します。それはパスの問題を解決するはずです:

require.config({
    paths: {
        jquery: 'libs/jquery-1.7.1.min',
        jqueryui: 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min'
        // Other modules...
    }
});
于 2013-05-04T21:54:23.147 に答える