lookfirst / generator-systemjs

Yeoman generator for SystemJS / ES6 / jspm / Angular / React
MIT License
19 stars 1 forks source link

Support for JSPM 0.16.2? #4

Open aaronroberson opened 9 years ago

aaronroberson commented 9 years ago

I'm having a world of problems after updating to jspm 0.16.2 and updating the dl-loaders by running jspm dl-loader --latest. After I run jspm install, jspm clean, jspm update and jspm clean again the entire application fails to load and without any errors. Reverting to jspm 0.15.7, updating dl-loader, doing jspm clean and jspm install and jspm update doesn't fix the problem.

If I generate a completely new app it works. However, if I update to jspm 0.16.2, update dl-loader (including the --latest flag), run jspm install, jspm clean, jspm update and jspm clean again, I am back to starring at a blank screen. I can reproduce it every time, but have no idea how to fix it other than start over. I have no recourse. Abandon jspm?

Perhaps it has something to do with the ocLazyLoad systemjs router bundler. I don't get any errors but the views for the routes are not injected or added to the DOM in the ui-view directive. Also, running jspm update updates the version numbers in system.config but it doesn't update the packages under jspm in package.json.

Manually updating the versions in package.json and then running jspm update has no effect.

lookfirst commented 9 years ago

hey @aaronroberson ... sorry about that. Yes, jspm has been upgraded and this project hasn't moved in lockstep. I'm slammed right now with the launch of a new company and haven't had the time to work on keeping this project up to date with the moving jspm target.

jspm itself is pretty great. I'd stick with it. There is just a bit of work to getting things going though. =(

aaronroberson commented 9 years ago

Hey Jon, I reverted every single client-side dependency to the version produced from the generator and everything began working again! I am still running jspm 0.16.2 and the updated dl-loaders. The problem is definitely related to one of the packages not being compatible or having introduced a bug. My suspicion of oclazyload-systemjs-router is now my primary suspicion.

Also, I get a warning that jspm_packages must be specified in the package.json within the baseURL for paths to resolve correctly. It doesn't appear to be a real issue since everything resolve correctly. However, I haven't done any production bundling so I'm uncertain what the future holds.

Finally, In the generated app you are using the todo module. The todo module does not use the oclazyload-systemjs-router but instead uses ui-router. For my app own modules, should I use the oclazyload-systemjs-router in each module as opposed to the stand-alone ui-router?

lookfirst commented 9 years ago

Yup. the oclazyload stuff is very out of date.

For my biz, I went with just ui-router alone and no oclazy load or systemjs-route-bundler. I've been pretty happy with it. The way my biz is setup, I just needed a bunch of single page apps that get bundled separately, so I have a gulpfile (using gulp-helpers) that just knows about each app and runs it through the jspm bundler directly. I had no need for segmenting those apps into route based bundles with the systemjs-route-bundler.

import {Builder} from 'jspm';

let bundler = (app) => {
    let builder = new Builder();
    return builder.buildSFX(`js/${app}/app`, `${path.war}/js/${app}/${app}-bundle.js`,
        {minify: situation.isProduction() || situation.isDemo(), sourceMaps: false});
};