We tend to stick to npm, yarn is only a fancy alternative, not 10x better. Using a self -hosted private repository (via sinopia/npm-mirror) make package locking (mostly) pointless.
Just use browserify & commonJS modules. We don't use RequireJS.
RequireJS client side loading resolution looks like the wrong answer to a bad problem.
Use the proper tool at the right place instead !
gulp is a fancy alternative to grunt (that we don't use anymore). Just use async/await instead of "stream" everything (which is a nonsens).
We don't use gulp. gulp