Javascript:Webpack+Typescript+Namespace(内部模块)

Javascript: Webpack+Typescript+Namespace (internal module)

我们正在尝试使用 Webpack 编译 typescript 代码,其中我们用命名空间(定义为内部模块)替换了“模块”(现在定义为外部模块)。

进行此更改主要是为了符合 typescript 的建议,并确保 运行 基于 Jasmine 的 Karma 单元测试不需要依赖“require”。 Karma-typescript 预处理器已配置,测试用例 运行 很好,不需要 "require".

命名空间的更改导致我们删除了对 require 的依赖,这在通过 tsc 进行单元测试和代码编译时效果很好。但是在使用 typescript 加载器(我试过 ts-loader、Webpack-typescript)通过 Webpack 进行编译时,输出仅包含入口 ts 文件的代码,而不包含其依赖项。 Tsc 已经有一个选项 (--outFile) 可以将输出连接到一个文件中,但是两个加载器都不使用它。

有没有办法(加载器或加载器的配置)解决依赖关系并将其捆绑到 Webpack 生成的单个输出 js 中?

This change was done primarily to be in line with the recommendations of typescript and ensuring that dependency on “require” is not required for running Jasmine based unit tests on Karma

你不需要那样做。您应该在任何地方使用 --module:commonjs,并在前端使用 bundle + 保持原样,以便使用节点进行 运行 测试(节点本机理解 commonjs)。

例子

我用 alm https://github.com/alm-tools/alm/