5 ms·
Ncc: Node.js Compiler Collection
- Sir_Cmpwn 8y agoThis just looks like a bundler. The thing about gcc, the name you're aping here, is that it's a collection of compilers. This looks like neither a compiler nor a collection of them. As far as I can tell this seems to be approximately 2,000 lines of JavaScript (half of which is tests) that wires together existing tools in an rather un-novel way. Or, in other words: an ad for "zeit".
- SOLAR_FIELDS 8y agoI thought the same when I read the article. It sounds like it’s just a wrapper around webpack. Why wouldn’t I just use webpack aside from this tool being marginally faster? Is there something I’m missing here? Couldn’t we just take their improvements and implement them in webpack?
- Rauchg 8y agoThe goal is to provide the experience that many other languages have, where you don’t configure anything. You just run “$tool build”
- Sir_Cmpwn 8y agoWebpack works with no configuration as of version 4.
- idle_zealot 8y agoGenerally $tool has a config file in the root of the project or similar. Webpack and other js compilers/bundlers are the same.
- Rauchg 8y agoThe goal is precisely to not just bundle, but incorporate important optimizations like the V8 Compile Cache (https://github.com/zeit/ncc/issues/51 https://github.com/zeit/ncc/issues/51), which is what inspired the project and name to begin with.
- Sir_Cmpwn 8y agoSeems like it'd be better as a webpack plugin. It's still not a compiler, by the way, nor a compiler collection, even with this feature included.
- peter-m80 8y agoIt is a compiler. Literally
- Rauchg 8y agoIt’s definitely possible to extract some internals as plugins, but not all currently. It would make more sense as a collection of plugins, and perhaps exposed as a preset. But the intent is to precisely remove the extra setup, when all you need to do is publish your Node.js codebase as a single file.
- iforgotpassword 8y agocat **.js > myprog.js
- Rauchg 8y agoNcc handles bundling `node_modules`. Your suggestion also introduces problems by not respecting commonjs module boundaries. (They’re akin to function scopes)
- randiantech 8y agoI will definitely give ncc a try. Our published npm artifacts on Artifactory are big, mainly because we are forced due to company policies to bundle node_modules into them. Npm installing them on our on premise instances are the main bottleneck of the deployment process.
- tracker1 8y agoif you can use `npm ci` closer to the release pipeline that can help. As will running SSD/NVME on the build/release server and zipping for transfer to/from artifact servers.
- oso2k 8y agoThis should be a `Show HN:`. OP is an author of the linked article.
- sick_of_web_dev 8y agoWhere's the compiler or even the collection of compilers in this? See this is why I'm sick of web dev, another project by "developers" who don't even know what a compiler is and on top of this name it ncc just to make it sound more important, lol.
- sctb 8y agoCould you please not post unless you have something civil and substantive to say? We eventually ban accounts that only post snark. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- stcredzero 8y agoHow about a fork that adds the suffix "-1701"? Subsequent versions could add letters, like a, b, c, d...
- tuananh 8y agoi don't get how is this a compiler?
- regularfry 8y agoThis looks really interesting to me. One of the things we're going through on our app right now is react-loadable style per-component bundling. The analogy would be to building .so files with GCC. Do you have any plans for ncc to address that use case?
- rafaelgarrido 8y agoAs other people mentioned before, the name is misleading. This project's analogy is closer to a linker than a compiler collection. Is this emitting any compiled code at all or just bundling functions? What is the roadmap for this project?