typescript - 带有 Minification/Uglify 的 Angular2 TypeScript 转译器

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

我正在使用 Angular2TypeScriptVisual Studio 2015 中开发网络应用程序。我正在使用 Gulp 生成分布式缩小的 js 文件。使用 Angular2 我明白了,既不需要使用 Visual Studio 也不需要使用 GulpTypeScript 转换为< strong>SystemJs 是在导入模块的时候做的。

现在是问题:

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

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

我如何缩小或丑化它?

最佳答案

SystemJS 是

Universal dynamic module loader - loads ES6 modules, AMD, CommonJS and global scripts in the browser and NodeJS. Works with both Traceur and 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 属性。

有关详细信息,请参阅此问题:

关于typescript - 带有 Minification/Uglify 的 Angular2 TypeScript 转译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35811789/

相关文章:

javascript - 如何检查数据是否完整加载以使用异步管道Angular 8

angular - 行索引在 Angular CDK 表中不可用

javascript - 在 Angular 2 中提交发布请求时的奇怪行为

javascript - Angular2 this 在组件中为 null

带有扩展对象的动态键的 typescript 接口(interface)

visual-studio-2015 - 'ConnectedServicesPackage' 包没有正确加载 visual studio 2015

android - Visual Studio 2015 Cordova : deploy failed

javascript - Angular2 应用程序未在移动设备上显示加载文本

c++ - VS2015上的TightVNC可从源代码编译

javascript - `ng test` 显示错误 : Can't resolve all parameters for BackendService