使用 HTML <script> 标签加载转译后的 TS2?

Load transpiled TS2 with HTML <script> tag?

我真的是 Typescript2 的新手。我很喜欢它,并且编写了一个模块,我可以轻松地在其他 Typescript2 项目中导入和使用它。但我也希望我的库能够通过简单地使用 HTML 标记作为独立库使用。但是,当我这样做时,浏览器会抱怨 "exports is undefined."

我猜我必须编写某种 javascript 来导入我的模块并实例化它,然后让我的浏览器加载该包装脚本。我在正确的轨道上吗?我如何创建一个 typescript,它可以转换成我可以在浏览器中本地加载的东西,并带有一个只加载和实例化的脚本标签?

你走在正确的轨道上。你需要的是一个模块加载器。对于浏览器,typescript documentation 中提到了 requirejs,尽管有几个选项(requirejs、browserify、webpack、rollup)。

我将 requirejs 与 typescript 一起使用,所以我有执行以下步骤的经验:

对于 requirejs,您可以开始执行以下操作。

  1. 当运行使用typescript配置文件或命令行compiler option arguments运行typescript编译器命令(tsc)时,确保编译成AMD格式的模块=17=]

    // tsconfig.json
    {
        "compilerOptions": {
            "module": "amd"
        }
    }
    
  2. 获取requirejs

  3. 记下typescript编译器输出的.js文件名
    • 例如"my-script.js"
  4. 向页面添加脚本标记
    • 例如<script data-main="scripts/my-script" src="require.js"></script>

requirejs 有一个简单的 "getting started" 页面 http://requirejs.org/docs/start.html

作为奖励,要将多个模块导出到单个文件,您可以使用 --outFile typescript 编译器选项。