os-js / OS.js

OS.js - JavaScript Web Desktop Platform
https://www.os-js.org/
Other
6.89k stars 822 forks source link

[Build] Replace Grunt with custom system #351

Closed andersevenrud closed 8 years ago

andersevenrud commented 8 years ago

Grunt is great and all, but what really grinds my gears is that the plugins usually don't have a good record when it comes to keeping dependencies up-to-date.

There's open PRs and Issues on some of these cases; 3+ months old!

So, I think the best solution is simply to go back to a custom task script like I had before switching over to Grunt. All of the build code is located in src/build.js as it was anyway, and the only real uses for Grunt here are the nw, watch, jscs, jslint tasks, which have their own libraries anyway and could be wrapped quite easily!

I'm pretty much set on this, but this is open for suggestions.

Previously the build tool was named obt (osjs build tool), but I'd like to hear your ideas (join the Gitter chat. I already have lots of names, but I like to have a lot of choices in these cases)

muka commented 8 years ago

Hello, I had a good dev experience with webpack for optimization and production build (has plenty of plugin to handle js but css and html fragment too)

Best

andersevenrud commented 8 years ago

@muka OS.js actually has its own build system that simply consists of concatenation and [optional] "uglification". It's pretty solid.

This issue was more aimed at the CLI, not the actual build process, but appreciate the input :)

andersevenrud commented 8 years ago

Seems that the plugin developers finally stepped ut their game. I managed to initiate an update process on some of the repos, so now all the critical ones have been solved! :D

I've thought about this for a while, and I think I will simply change the syntax of some of the operations to make this all prettier. I don't want to manage anymore build-related code -- there's already way too much stuff in place.

Instead of:

grunt create-package:foo/Bar:extension

rather:

grunt create-package:foo/Bar --template=extension
```¨