How to bundle Angular2 RC1 with systemjs

不羁的心 提交于 2019-11-30 17:41:50
eko

In order to get a lighter weight project you should check SystemJS Builder or JSPM to bundle your project.

Example seed project: https://github.com/madhukard/angular2-jspm-seed

@BrunoGarcia gave a very nice info here: https://stackoverflow.com/a/37098964/5706293

dygufa

You just need to use a bundler:

  • UMD files: it's probably the easiest solution. As you can see in this example. You just need to make a reference to the UMD files in your systemjs config file (not so useful for production enviroments):

    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'
            }
        }
    });
    

    You can find another exampe (probably better) here!

  • systemjs-builder + gulp: if you wanna keep using systemjs, it's a good call to use this solution, however I've tested it and it took me 30s to generate the bundle, making it not so useful for development (maybe I was doing something wrong [almost sure]), but you still can check how to bundle your application using system-builder here;

  • webpack: I'm currently using webpack. Webpack has a dev tool called webpack-dev-server that bundle the application virtually on the memory making the process faster during development (+ hot reload). You can find a quick video tutorial here and a more detailed description from Angular 2 documentation here. In order to use webpack you must install webpack (and webpack-dev-server if you want to) packages: npm i -S webpack webpack-dev-server, create a webpack.config.js file and run it using only webpack to just generate the bundle file or webpack-dev-server --inline to create a server that aut re-bundle with your modifications. The --inline option enables auto reload on the browser window:

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

    Now insert your bundle.js file on your index.html: <script src="BUILD_DIR/bundle.js"></script>

These two last options will allow you to generate a bundle of the whole application that you can manually include in your index.html file.

Tushar Tibude

1)con-cat all js files and css files include on index.html using gulp-concat.

2)Bundling angular libraries and app components mentioned in systemjs.config.js file. Using gulp systemjs-builder.

3)Minify bundles using gulp-uglify.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!