【问题标题】:Angular2 TypeScript transpiler with Minification / Uglify带有 Minification / Uglify 的 Angular2 TypeScript 转译器
【发布时间】:2016-06-19 02:48:52
【问题描述】:

我正在使用 Angular2TypeScriptVisual Studio 2015 中开发一个 Web 应用程序。我正在使用 Gulp 生成分布式缩小的js 文件。使用 Angular2 我看到,没有必要将 TypeScript 转译为 Visual StudioGulp asSystemJs 在导入模块时会这样做。

现在是问题:

SystemJs 如何处理缩小、丑化等问题?

System.import('app/main').then(null, console.error.bind(console));

如何缩小或丑化这个?

【问题讨论】:

  • 再分析一下,我看到System.config 有一个名为bundle 的属性,我可以在其中捆绑我的多个模块。我没有找到任何关于丑化的信息。
  • 该选项属于SystemJS Builder。 Angular2 教程不使用 SystemJS Builder

标签: typescript visual-studio-2015 angular bundling-and-minification systemjs


【解决方案1】:

SystemJS 是

通用动态模块加载器 - 在浏览器和 NodeJS 中加载 ES6 模块、AMD、CommonJS 和全局脚本。适用于 Traceur 和 Babel。

其实SystemJS有两种使用方式:

  • 在浏览器中转换您的 TypeScript 文件。这意味着 SystemJS 会加载您的模块,它会加载相应的 TypeScript 文件并即时转换它们。在这种情况下可以使用以下配置:

    <script>
      System.config({
        transpiler: 'typescript', 
        typescriptOptions: {
          emitDecoratorMetadata: true
        },
        packages: {
          'app': {
            defaultExtension: 'ts'
          }
        } 
      });
      System.import('app/main')
         .then(null, console.error.bind(console));
    </script>
    
  • 使用以前转译的文件。在这种情况下,您需要使用 TypeScript 编译器从 TypeScript 生成 JS 文件。这些 JS 文件直接依赖 SystemJS API 来注册和导入模块。

    <script>
      System.config({
        packages: {
          'app': {
            defaultExtension: 'js'
          }
        } 
      });
      System.import('app/main')
         .then(null, console.error.bind(console));
    </script>
    

这个问题也可以帮助你:

这是为了上下文。关于您的问题,您似乎使用了第一个选项。要回答您的问题,缩小内容仅对第二种选择有意义。事实上,这对应于优化要为您的应用程序加载的元素(网络调用的数量、文件的大小)。由于您为此选项使用已编译的 JS 文件,因此您可以缩小/丑化它们。如果只想创建一个 JS 文件,可以考虑 TypeScript 编译器的outFile 属性。

查看这个问题了解更多详情:

【讨论】:

  • 太棒了。非常感谢。正如我在提到的帖子中看到的,甚至不再需要 System.config。你知道为什么吗?
  • 不客气!在您不需要 System.config 的情况下,因为 outFile 模块在输出文件中使用System.register 显式注册。您不需要使配置成为模块和文件名之间的对应关系(没有选项需要什么)...
猜你喜欢
  • 1970-01-01
  • 2016-04-21
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
  • 2016-03-28
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
相关资源
最近更新 更多