4 ms·
Neutrino by Mozilla: Create and build modern JavaScript apps with zero initial config
- navs 10y agoIs this comparable to Yeoman?
- eliperelman 10y agoThe main purpose of Yeoman is to generate files that could essentially become a boilerplate, almost like a boilerplate generator. It doesn't actually do any work for building or testing the project, rather it could potentially put the dependencies in place to do that for you. Neutrino, on the other hand, consolidates those dependencies and configuration for you into presets. It is the power of the build tool + the preset that makes building the project simple. Had you just used Yeoman to generate the dependencies and configuration, you would still be on your own to continue to manage all the individual dependencies and configuration, while with Neutrino you can simply override what you need and still have the preset manage its own dependencies.
- niteshade 10y agoThis! So much this! I've spent the past few days thinking about making a "Webpack Cookbook" with up-to-date "recipes" for getting the job done, such as how to use SASS, add linting, hot reloading etc. Mozilla have definitely made my day :) I might be in the minority, but I'd rather not learn all the idiosyncracies of Webpack, I just want to build my project and get on with my day. Webpack have done a great job with the documentation for v2, but it remains a complex beast.
- eliperelman 10y agoI'd go even further and say that even if you have learned the idiosyncrasies of Webpack, you still won't want to carry on maintaining multiple configurations, or repeat your work across many projects. I believe Neutrino can have appeal to those users as well; those that want to consolidate their work into presets and share. Thank you for the kind words!
- flukus 10y agoApparently modern javascript apps don't allow you to navigate between pages. It's not working for me on chrome. Edit - I can open them with a middle click, so at least the fallback to a more reliable tech.
- eliperelman 10y agoAre you talking about the documentation, or an app you're trying to run with Neutrino? I'm not aware of any problems with either, but if you could raise an issue I'd be happy to investigate.
- flukus 10y agoThe documentation that the link goes to, clicking any of those links on the left or the next/back button does nothing. It looks like it might be cause be the company zscalar or the site, the error is: > has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://neutrino.js.org' https://neutrino.js.org' is therefore not allowed access. Either way, it ridiculous to require javascript to read a plain text site.
- eliperelman 10y agoNeutrino, a project for building JavaScript applications, using a JavaScript project as its documentation? Scandalous! ;) Anyway, we're using gitbook to render our documentation content: https://github.com/GitbookIO/gitbook https://github.com/GitbookIO/gitbook The documentation also lives in the GitHub repository, albeit not as navigable as the website: https://github.com/mozilla-neutrino/neutrino-dev/tree/master/docs https://github.com/mozilla-neutrino/neutrino-dev/tree/master...
- tjholowaychuk 10y agoNice this looks like the best implementation of webpack-hiding stuff I've seen yet, forcing less on you but still hiding it nicely. Glad that more people are realizing boilerplate generation is not a solution, I get angry even looking at webpack config haha, I appreciate what it can do, but it doesn't belong at the app level.
- eliperelman 10y agoThanks, that means a lot! Totally agree about boilerplate. I quickly tired of the copying and staleness of boilerplates, but I think the contributors of create-react-app make some valid points. Working with the configuration needs of many loaders and concerns is difficult. Webpack configuration is not well-suited for keeping these separate and merging them back together later. This is a big reason why Neutrino abandoned using raw Webpack-based configurations merging across presets, favoring a single configuration API that all presets interact with. It takes a lot of the difficulty away from keeping things separate and abstract.