【问题标题】:Typescript - bundle all source files in single output with required external modules from node_modulesTypescript - 将所有源文件与来自 node_modules 的所需外部模块捆绑在单个输出中
【发布时间】:2017-07-29 05:37:12
【问题描述】:

我正在使用 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 来完成

【问题讨论】:

    标签: javascript typescript bundling-and-minification


    【解决方案1】:

    简短的回答是否定的。

    长答案是在某些情况下您可以这样做,但可能不应该尝试。 TSC 用作 TypeScript-to-JavaScript 编译器,转换文件并检查其有效性。创建适当的包,尤其是从不同版本的 JavaScript 依赖项创建适当的包,具有完全不同的一组要求和期望,它们不属于转译器的范围。

    some cases 中,您可以拥有纯基于 TSC 的捆绑工作流,这样做甚至可能有意义。但这必然意味着您正在处理一个纯粹的 TypeScript 解决方案,而不是真正满足您对真正捆绑包的期望。

    一开始这听起来像是一个不必要的复杂化,但 Webpack 是要走的路,即使对于库也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 2015-06-21
      • 2017-09-19
      相关资源
      最近更新 更多