2

を使用するプロジェクトをダウンロードしましたAMD。すべて正常に動作しますが、コンパイルされたすべてのファイルを 1 つの出力ファイルに連結する方法をテストしたかったのall.jsです。--outパラメータについて何かを見つけて、ここからの手順に従いました: https://stackoverflow.com/a/14302902/1252575

それは私にとってはうまくいきませんでした、私はエラーが発生しています:

コマンド "tsc --module AMD --out all.js "C:\TypeScriptWithRequireAMD_0.8.1\app\classes\Test.ts" "C:\TypeScriptWithRequireAMD_0.8.1\modules\require.d.ts" "C:\ TypeScriptWithRequireAMD_0.8.1\app\classes\Greeter.ts" "C:\TypeScriptWithRequireAMD_0.8.1\app\AppConfig.ts" "C:\TypeScriptWithRequireAMD_0.8.1\app\AppMain.ts"" はコード 1 で終了しました。

私のファイル構造は次のようになります。

解決

ところで。2 つ目の質問があります。パラメータはカタログ--outからコンテンツをコピーしますか? libそうでない場合、それらも含める方法は?

[編集1.]

ああ、忘れていました...それは私の.csprojファイルの一部です:

<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <TypeScriptSourceMap>--module AMD</TypeScriptSourceMap>
</PropertyGroup>
<Target Name="BeforeBuild">
    <Message Text="Compiling TypeScript files" />
    <Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
    <Exec Command="tsc $(TypeScriptSourceMap) --out all.js @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

[編集2.]

これが私のものAppConfig.jsです:

require.config({
    baseUrl: '../',
    paths: {
        'jquery': 'lib/jquery-1.7.2',
        'underscore': 'lib/underscore',
        'backbone': 'lib/backbone',
        'console': 'lib/console',
        'greeter': 'app/classes/Greeter',
        'test': 'app/classes/Test'
    },
    shim: {
        jquery: {
            exports: '$'
        },
        underscore: {
            exports: '_'
        },
        backbone: {
            deps: [
                "underscore", 
                "jquery"
            ],
            exports: "Backbone"
        },
        console: {
            exports: "console"
        },
        greeter: {
            deps: [
                "test"
            ]
        },
        test: {
            deps: [
                "greeter"
            ]
        }
    }
});
require([
    'jquery', 
    'underscore', 
    'backbone', 
    'console', 
    'app/AppMain', 
    'app/classes/Greeter', 
    'app/classes/Test'
], function ($, _, Backbone, console, main, greeter, test) {
    var appMain = new main.AppMain();
    appMain.run();
});
4

1 に答える 1

4

定義上、AMDスクリプトはAMDローダーによって非同期にロードされます。それらをすべて1つのファイルに配置するには、各ファイルの依存関係について分析を実行して、正しい順序で挿入されるようにする必要があります。これはそうすることで--outはありません。代わりに、 RequireJSオプティマイザーのようなものを調査する必要があります。

于 2013-01-24T16:02:23.817 に答える