New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some additions that might be interesting for WSK #704

Closed
dsebastien opened this Issue May 28, 2015 · 4 comments

Comments

Projects
None yet
5 participants
@dsebastien

dsebastien commented May 28, 2015

First I'd like to thank you for creating Web Starter Kit; I've used it as basis for my new personal project and while it took me some time to understand the whole gulp build file, it's been very enlightening.

You might be interested by my current gulpfile; I've spent quite a bit of time to work around some issues I've encountered though it remains close to that of WSK.

Here are some things I've done in mine that could be useful/make sense for Web Starter Kit:

  • added plumber to avoid having plugins crashing the build, which is especially useful for sass 'compilation' while gulp serve is running; combined with gulp-notify, native notifications are shown when issues occur
  • fixed the sourcemaps generation (the combination of sass + autoprefixer + sourcemaps requires a bit of a hack)
  • added ES6 to ES5 transpilation for JS code using Babel
  • added TypeScript transpilation support (personal choice indeed)
  • added sourcemaps for javascript & typescript code
  • modified the 'styles' task to stream new css files towards BrowserSync rather than forcing a full reload (makes for a smoother dev experience)
  • made a clear separation between third-party/vendor js/css code and the application's. Useful for packaging; for dist I now end up with two minified bundles (application's + vendor)
  • prevented jshint from failing the build (I think it's just counterproductive, especially during development in combination w/ gulp serve -- where I run it in order to get quick feedback)
  • added a 'copyNpmDependencies' task that copies actual project dependences to the temp folder. This allows me to refer to these correctly in the index.html file (if you look at my package .json you'll see that my app's actual dependencies are under 'dependencies' while all build-related dependencies are within 'devDependencies')
  • added gulp-help to make the different gulp tasks easily discoverable using 'gulp help' (each task now has a clear description)
  • extracted all build configuration settings in a separate file
  • exploded the gulpfile in n files under gulp\tasks and used require-dir to load them all recursively (taken from gulp-starter (https://github.com/greypants/gulp-starter); this makes the code much clearer
  • modified the globs to allow for javascript, typescript and styles to be placed anywhere in the app folder. This makes it possible to properly isolate 'components', which can't be bad (except from a build performance p.o.v)
  • fixed an issue with the serve that where BrowserSync could start before all pre-reqs were completed (used runSequence + callback function)
  • added a validation task for the package.json file (sometimes useful)
  • added some documentation here and there to make the whole build clearer
  • upgraded to Gulp 3.9.0 and converted some parts of the build to ES6 (just for fun)

Well in case you're interested, the project is here:

And the files of interest are over there:

As a bonus I've also added Docker support since that's quite useful to quickly get started:

@stevemao

This comment has been minimized.

Contributor

stevemao commented Aug 14, 2015

This should be broken down into different issues as it's impossible to track if not.

@cjdiamond

This comment has been minimized.

cjdiamond commented Dec 26, 2015

It appears like the OP has built his own boilerplate at https://github.com/dsebastien/modernWebDevBuild which the project referenced is using instead of WSK.

Because the OP has released his own boilerplate with these features and hasn't provided pull requests, should this issue be closed?

@dsebastien

This comment has been minimized.

dsebastien commented Dec 26, 2015

Hey there.

Yep, I've extracted all the build parts in separate projects:

Unfortunately, the code has evolved a lot since I've posted this so it would probably not be easy to merge things back to this code base... Although I still think there would be added value to WSK :)

@dsebastien dsebastien closed this Dec 26, 2015

@dancancro

This comment has been minimized.

dancancro commented Dec 26, 2015

Just FYI, if anyone else is working on a project similar to this one or considering doing so, here is a fairly exhaustive database of the features of many similar projects and supporting technologies. You might want to search it for something you want before embarking on one of your own.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment