angular - 如何将 Angular2 RC1 与 systemjs bundle 在一起

标签 angular bundle rxjs systemjs

在候选版本发布之前,angular 提供了一个 bundle 文件。自发布候选版本以来,不再有 bundle 文件。包括 angular2 和 rxjs,我的应用程序现在在 7 秒内发出 671 个请求来加载。这阻碍了发展。

有谁知道如何 bundle angular 和 rxjs 并将它们包含在 system.config 中?

最佳答案

你只需要使用一个打包器:

  • UMD 文件:这可能是最简单的解决方案。正如您在此 example 中看到的那样.你只需要在你的 systemjs 配置文件中引用 UMD 文件(对生产环境不是很有用):

    System.config({
        packages: {
            app: {
                main: './main.ts',
                defaultExtension: 'ts'
            },
            '@angular/core': {
                main: 'core.umd.js',
                defaultExtension: 'js'
            },
            '@angular/compiler': {
                main: 'compiler.umd.js',
                defaultExtension: 'js'
            },
            '@angular/common': {
                main: 'common.umd.js',
                defaultExtension: 'js'
            },
            '@angular/platform-browser-dynamic': {
                main: 'platform-browser-dynamic.umd.js',
                defaultExtension: 'js'
            },
            '@angular/platform-browser': {
                main: 'platform-browser.umd.js',
                defaultExtension: 'js'
            },
            rxjs: {
                defaultExtension: 'js'
            }
        }
    });
    

    你可以找到另一个例子(可能更好)here !

  • systemjs-builder + gulp:如果你想继续使用 systemjs,使用这个解决方案是一个很好的选择,但是我已经测试过了,我花了 30 秒来生成包,使它对开发没那么有用(也许我做错了什么 [几乎可以肯定]),但您仍然可以检查如何使用系统构建器 bundle 您的应用程序 here ;

  • webpack:我目前正在使用 webpack。 Webpack 有一个名为 webpack-dev-server 的开发工具,它将应用程序虚拟地 bundle 在内存上,从而使开发过程中的过程更快(+ 热重载)。您可以快速找到 video tutorial此处以及 Angular 2 文档中的更详细描述 here .为了使用 webpack,您必须安装 webpack(如果需要,还需要安装 webpack-dev-server)包:npm i -S webpack webpack-dev-server ,创建一个 webpack.config.js 文件并仅使用 webpack 运行它只生成 bundle 文件或 webpack-dev-server --inline创建一个自动重新 bundle 您的修改的服务器。 --inline 选项可以在浏览器窗口上自动重新加载:

    // webpack.config.js file
    module.exports = {
        entry: 'SRC_DIR/main.js',
        output: {
            path: 'BUILD_DIR',
            filename: 'bundle.js'
        }
    }
    

    现在将您的 bundle.js 文件插入到您的 index.html 中:<script src="BUILD_DIR/bundle.js"></script>

最后这两个选项将允许您生成整个应用程序的 bundle ,您可以手动将其包含在 index.html 文件中。

关于angular - 如何将 Angular2 RC1 与 systemjs bundle 在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37324511/

相关文章:

ios - 意外的 CFBundle info.list

java - 在嵌入 Android 的 Knopflerfish 上启动 Bundle 不起作用

mysql - mysql2 gem 在 OSX : "Symbol not found: _rb_prohibit_interrupt" 上加载 Rails env 时出错

angular - Observable.forkJoin() 不执行

Angular5 Service Worker 更新 (SWUpdate) 未在 Firefox 上检测到。在 Chrome 上工作

使用 RxJS 进行 Angular 异步延迟渲染

javascript - 如何使用 Rxjs Observable 和 Async Pipe 在 Angular 4 中为每日重复发生的事件创建倒数计时器

angular - FormControl.detectchanges - 为什么使用 distinctUntilChanged?

Angular2 - 具有相同路线的两个组件

angular - 多个路由器 socket 的干净 url Angular