I'm currently speeding through and enjoying, "JavaScript Application Design: A Build First Approach" by Nicolas Bevacqua.
The only downside to this fantastic book is that it was written in 2015 and doesn't (so far) use ES6. But it's a comprehensive JavaScript book I wish was recommended more to beginners.
For reference, taking a build first approach means dedicating a good chunk of the book towards:
- understanding and creating build tasks
- truly exploring environment workflows
- building out continuous deployments
- writing modular, easy to test code
This is counter to most intro books that focus on JavaScript syntax and standalone concepts.