Typescript - 使用node_modules中所需的外部模块捆绑单个输出中的所有源文件

时间:2017-03-08 15:09:58

标签: javascript typescript bundling-and-minification

我正在使用typescript将我的应用程序捆绑到一个.js文件中。据我所知,这是可能的,因为TS 1.8(我使用的是2.1)。这是我的.tsconfig

{
  "compileOnSave": true,
  "compilerOptions": {
    "experimentalDecorators": true,
    "alwaysStrict": true,
    "jsx": "react",
    "noEmitOnError": true,
    "outFile": "dist/bundle.js",        
    "moduleResolution": "node",
    "preserveConstEnums": true,
    "removeComments": true,
    "sourceMap": true,
    "target": "es5",
    "module": "system"
  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

这确实创建了bundle.js文件,但是node_modules中引用的模块不在此包中。是否有可能以某种方式在捆绑中添加模块?

我知道这可以使用Webpack或类似工具完成,但我的问题是是否可以仅使用typescript来实现

1 个答案:

答案 0 :(得分:1)

简短的回答是否定的。

很长的答案是你可以在某些情况下这样做,但可能不应该被尝试。 TSC作为TypeScript-to-JavaScript编译器工作,转换文件并检查其有效性。创建适当的包,特别是来自不同版本的JavaScript依赖包,有一整套不同的要求和期望,这些都不属于转换器的范围。

some cases您可以在其中使用基于TSC的纯工作流工作流程,甚至可以这样做。但这些必然意味着您正在处理纯粹的TypeScript解决方案,而不是真正满足您从真正的捆绑中获得的期望。

起初可能听起来像是一种不必要的复杂问题,但即使对于图书馆来说,Webpack也是如此。