12

私は System.js と JSPM についてさらに詳しく調べており、TypeScript ソース コードを JavaScript バンドルにバンドルしたいところまで来ました。

これで、生成された JavaScript コードを次のようにバンドルできます。 jspm bundle some/source/path someDestFile.js

しかし、最初にすべての TypeScript を事前に JavaScript にビルドしてからバンドルする必要がありコンパイル済み (および分離済み) のすべての JS ファイルが残っていることに気付きます。これは理想とはかけ離れています。

ここでjspm ドキュメントを調べましたが、解決策が見つかりませんでした。

明確にするために、ブラウザで TypeScript をコンパイルするのではなく、しっかりした JavaScript のプリコンパイル済みバンドルをコンパイルしたくありません。

どうすればいいですか?

PS私はここに見られるようにTypeScriptトランスパイラーのインストールを使用しました

4

2 に答える 2

9

JSPMビルダーでできます。次のように jspm.conf.js を構成して、すべての typescript ファイルと bundlesfx を 1 つのファイルにバンドルできます。

System.config({
    defaultJSExtensions: true,
    transpiler: "typescript",
    typescriptOptions: {
        "module": "amd",
        "experimentalDecorators": true
    },
    ...
    packages: {
        "app": {
            "main": "index",
            "defaultExtension": "ts",
            "meta": {
                "*.ts": {
                    "loader": "ts"
                }
            }
        }
});

そして実行します:

jspm bundle-sfx src/index dist/app.js

ここで完全な作業例を見ることができます: https://github.com/b091/ts-skeleton/

于 2015-08-12T08:54:28.353 に答える
1

質問が時代遅れになっていると思います。plugin-typescript ( https://github.com/frankwallis/plugin-typescript )を使用して JSPM 0.17.0-beta.31 でこれを試したところ、「jspm bundle」は確かに TypeScript を事前に翻訳してくれました。

「jspm bundle-sfx」は「jspm build」になりました。元の受け入れられた回答では、今は必要ないはずの bundle-sfx (ビルド) への切り替えが提案されていたため、バンドルとビルドのどちらを使用するかの決定を明確にしたいと思います。バンドルは開発のスピードアップに役立つと思いますが、ビルドはより最適化された小さなファイルを生成できるため、開発中にバンドルを使用し、リリース時にビルドすることをお勧めします。ライブラリでビルドを使用する場合、ライブラリをインポートするコードはその依存関係を共有できないことに注意してください。

于 2016-11-15T16:35:25.003 に答える