
Neutrino by Mozilla: Create and build modern JavaScript apps with zero initial config - guifortaine
https://neutrino.js.org/
======
niteshade
This! 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
I'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!

------
tjholowaychuk
Nice 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
Thanks, 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.

------
navs
Is this comparable to Yeoman?

~~~
eliperelman
The 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.

------
flukus
Apparently 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
Are 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
The 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
Neutrino, 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...](https://github.com/mozilla-neutrino/neutrino-
dev/tree/master/docs)

