expressjs / express

Fast, unopinionated, minimalist web framework for node.
https://expressjs.com
MIT License
65.55k stars 16.13k forks source link

Migrate from Make to Grunt #1842

Closed dotproto closed 10 years ago

dotproto commented 10 years ago

I'm primarily a Windows developer due to work. I'm interested in moving Express from Make to Grunt.js to improve the cross-platform dev experience.

Before I start hacking on it I'm curious this would be a useful contribution to the project.

dotproto commented 10 years ago

Oh, I should also say that while Make is available for windows, I'd much rather stay in the JS ecosystem than require each user to find their own workaround.

tj commented 10 years ago

I'm not a fan of grunt, but you don't really need make to hack on express either, just mocha

defunctzombie commented 10 years ago

I hate grunt. Just gotta add that. Oh and I have no sympathy for windows hahaha this is their own doing :p On Dec 3, 2013 4:27 PM, "TJ Holowaychuk" notifications@github.com wrote:

I'm not a fan of grunt, but you don't really need make to hack on express either, just mocha

— Reply to this email directly or view it on GitHubhttps://github.com/visionmedia/express/issues/1842#issuecomment-29753198 .

dotproto commented 10 years ago

Guess I should have checked out the Make file before submitting this request. Looks straight forward enough. Thanks for the quick reply.

I'd encourage sympathy for all people, especially those that have jobs mandating that they use Windows as their primary OS. . _ .

dotproto commented 10 years ago

P.S. I'm curious why the Grunt unlove. Ignoring the backend, the end user experience is pretty solid.

npm install
grunt test

Almost identical to Make's usage, except it doesn't require anything outside the Node/NPM ecosystem.

jonathanong commented 10 years ago

It doesn't require anything in the node/npm ecosystem. Lol

jonathanong commented 10 years ago

It's easier just to create JS files and call them via npm run IMO. Those grunt plugin configs are brutal

defunctzombie commented 10 years ago

Because grunt configs are entire apps that could use tests themselves. It gets out of control :D On Dec 3, 2013 4:34 PM, "Simeon Vincent" notifications@github.com wrote:

P.S. I'm curious why the Grunt unlove. Ignoring the backend, the end user experience is pretty solid.

npm install grunt test

Almost identical to Make's usage, except it doesn't require anything outside the Node/NPM ecosystem.

— Reply to this email directly or view it on GitHubhttps://github.com/visionmedia/express/issues/1842#issuecomment-29753799 .

dotproto commented 10 years ago

It doesn't require anything in the node/npm ecosystem.

I assume you mean Make. True, but it does require something of your development environment that isn't universal (Make itself). Being able to pull in all your development, deployment, testing, etc. dependencies with a single command (npm install) is a powerful thing IMO.

Maybe its a mindset thing. I'm biased towards less typing; I like being able to execute cmd arg vs. npm run cmd arg. Its kind of a "do more to do less" argument. I fully admit that's pretty pretty thin ice, though.

@defunctzombie, the same could be said for sufficiently complex make files, but point taken.

Anyway, thanks all. Curious sated.

tj commented 10 years ago

the thing that bothers me about grunt is that there's a movement towards creating grunt plugins, instead of creating universal executables, make just ties those together, not a huge deal either way but I prefer make

vendethiel commented 10 years ago

I'm on Windows and I'm a make user too. -1 for Gruntfile, sometimes longer than basic apps

caridy commented 10 years ago

deja-vu conversation! we have had the same conversation a while ago when discussing tests on windows :/

rlidwka commented 10 years ago

P.S. I'm curious why the Grunt unlove. Ignoring the backend, the end user experience is pretty solid

It is very verbose and requires countless plugins for everything.

Look at the makefile, it's nice and simple. How would you write a grunt file like this?

hallas commented 10 years ago

Not a grunt fan either

reqshark commented 10 years ago

stay sipping grunt haterde +1

tj commented 10 years ago

haha sorry, wasn't supposed to turn into a trolling thing, we just have to stick with something

dotproto commented 10 years ago

@visionmedia No worries. It's been an interesting discussion. Even straight 'no grunt plx' responses have been informative. The JS community is large; I find it to be a useful tool, but before this thread I didn't know how divided people were about it.

@rlidwka I'll try to find some time later today to write a couple examples. Hopefully it will lead to some interesting discussion.

jonathanong commented 10 years ago

Was thinking of a module that converted Makefiles to a JS equivalent. Then I thought of a framework that allowed you to write a "makefile.js" with each task as an exported function. Then I got lazy. Either way, I think writing commands in plain javascript is easier than using grunt plugins and tinkering with their endless options.

vendethiel commented 10 years ago

I think makefile.js kind of stuff definitely already exists ;).

rlidwka commented 10 years ago

I think makefile.js kind of stuff definitely already exists ;).

Attwood's law?

Weyland commented 10 years ago

Why not Gulp?