12

我对 System.js 和 JSPM 有了更多的了解,我已经到了想将我的 TypeScript 源代码捆绑到 JavaScript 包中的地步。

现在我可以将生成的 JavaScript 代码与以下内容捆绑在一起: jspm bundle some/source/path someDestFile.js

但随后我需要先将我所有的 TypeScript 预构建到 JavaScript 中,然后打包,发现自己留下了所有已编译(和分离)的 JS 文件。这远非理想!

我在这里浏览了 jspm 文档,但没有找到解决方案。

为了清楚起见,我不想在我的浏览器中编译 TypeScript,而是一个预编译的可靠 JavaScript 包。

我该怎么做呢?

PS 我使用了 TypeScript transpiler 安装,如此处所示

4

2 回答 2

9

您可以使用 JSPM 构建器来完成。您可以将所有 typescript 文件和 bundlesfx 捆绑到一个文件中,像这样配置 jspm.conf.js:

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

我相信这个问题已经过时了。我刚刚用 JSPM 0.17.0-beta.31 和 plugin-typescript ( https://github.com/frankwallis/plugin-typescript ) 尝试了这个,“jspm bundle”确实为我预先翻译了 TypeScript。

“jspm bundle-sfx”现在是“jspm build”。因为最初接受的答案建议切换到 bundle-sfx (build),现在应该没有必要了,我想澄清是使用 bundle 还是 build 的决定。我发现 bundle 对于加速开发更有用,而 build 可以生成更小的文件并进行更多优化,因此您可能希望在开发期间使用 bundle 并在发布时使用 build。请注意,如果您在库上使用构建,则导入您的库的代码将无法共享其依赖项。

于 2016-11-15T16:35:25.003 回答