Universal: SystemJS support

Created on 24 Feb 2016  路  18Comments  路  Source: angular/universal

Right now Universal does not work with SystemJS. Need to do some research here to find the root cause.

urgent days

All 18 comments

I'll take a look at this

@jeffwhelpley @wesleycho this may be related...

Last week, I started a side POC getting universal run on Java 8 Nashorn. And I discovered that SystemJS is not supported on Nashorn. I opened an issue for that.
See it here: https://github.com/systemjs/systemjs/issues/1113

Just let me know if I can help here at all as well. Conditional package loading in SystemJS may come in handy here too.

This issue description is vague, but I can say I had universal running against systemjs (without jspm) in the past https://github.com/sullivanpt/ng2-universal-seed/tree/systemjs. (I abandoned the branch because webpack/browserify gave a more consistent dependency experience on express.)

Thanks for the feedback @sullivanpt. Hey, @gdi2290 and @manekinekko what were the issues you guys ran into with this?

@jeffwhelpley First when I use systemjs-builder and in systemjs.config.js

//...
var map = {
        'root':                       '',  
        'app':                        'app', // 'dist',
        'rxjs':                       'node_modules/rxjs',
        '@angular':                   'node_modules/@angular',
        'angular2-universal':         'node_modules/angular2-universal/browser.js',
        'angular2-universal-polyfills': 'node_modules/angular2-universal/dist/polyfills.js'
    };
//...

and import bootstrap

import {bootstrap} from 'angular2-universal';

have error

Build error
{ Error on fetch for node_modules/angular2-universal/dist/common.js at file:///Users/alex/Sites/ng2/sampleTSexpress/universal-systemjs/node_modules/angular2-universal/dist/common.js
        Loading node_modules/angular2-universal/dist/browser/browser.js
        Loading node_modules/angular2-universal/browser.js
        Loading dist/client.js
        Error: ENOENT: no such file or directory, open '/Users/alex/Sites/ng2/sampleTSexpress/universal-systemjs/node_modules/angular2-universal/dist/common.js'
    at Error (native)
  originalErr: 
   { Error: ENOENT: no such file or directory, open '/Users/alex/Sites/ng2/sampleTSexpress/universal-systemjs/node_modules/angular2-universal/dist/common.js'
       at Error (native)
     errno: -2,
     code: 'ENOENT',
     syscall: 'open',
     path: '/Users/alex/Sites/ng2/sampleTSexpress/universal-systemjs/node_modules/angular2-universal/dist/common.js' } }

when build

The above sounds like a standard Node compatibility problem - trying to load ../common as a directory require in Node through SystemJS when what is expected by SystemJS is ../common/index.js.

Alternatively this project could rewrite the require('../common') in dist/browser/browser.js to require('../common/index.js') and not explicitly rely on the directory require resolution.

Is there any progress on this? Is there any plan when this will be ready for use? Do you think that SystemJs will be usable with asp.net core server side?

Thank you

Hi, @kukjevov, so this is still very high on our list, but it is currently not on the critical path for the full release. We have a couple high priority bugs and upgrades we are focused on now. Of course, if anyone from the community wants to help on this, please let @gdi2290 and I know and we can provide some guidance. Otherwise this will be a post-release item.

@kukjevov There's a great webpack starter with .NET Core, any reason you want to use System? Just curious!

@kukjevov
@MarkPieszak is right
it's easy to use and it's a more mature technology compared to its closest competitor, SystemJS.

Hi all :).

Thank you very much for answers. I know that there is Webpack already prepared for usage with .NET Core. My reason is simple, right now im using SystemJS and currently dont have time to study WebPack in the first, but dont think this could be problem but dont have time to update project for WebPack.

Still im missing a bit documentation for Universal, when im using something i need to know how it works, not in detail but currently i dont see anywhere how is "index.html" loaded on server side.

But im already thinking about migrating to WebPack.
Anyway thx for replies :)

I'm going to close this until someone from the community creates a PR to own support of SystemJS

Please provide support for systemjs!

universal is merging into core which means it has support in Angular 4+

Love you! Thats properbly the fastest answer i've ever get 馃憤

no problem 馃憤

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

_This action has been performed automatically by a bot._

Was this page helpful?
0 / 5 - 0 ratings