Javascript:Webpack Typescript命名空间(内部模块)

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

此更改主要是为了与typescript的建议一致,并确保在Karma上运行基于Jasmine的单元测试不需要依赖于“require”.已经配置了Karma-typescript预处理器,测试用例运行正常,无需“require”.

对命名空间的更改导致我们删除对require的依赖,当它通过tsc进行单元测试和代码编译时非常有效.但是在使用typescript加载器通过Webpack进行编译时(我已经尝试过ts-loader,Webpack-typescript),输出只包含入口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 for前端请保留它,因为它是使用node运行测试(节点本身理解commonjs).

我用alm https://github.com/alm-tools/alm/这样做

点赞