A lot has changed in those releases, including the removal of dojo as part of the API in 4.20. I don't remember the technical specifics of what transpired, but I ended up making my own custom replacement for the text module. It's called text.js, and I placed it within the root of my own package. The implementation is very simple:
define([], function() {
return {
load: function(id, require, callback) {
var url = require.toUrl(id);
var prop = "url:" + url;
var cacheVal = require.cache[prop];
if (typeof cacheVal == "string")
callback(cacheVal);
else {
fetch(require.toUrl(id), {credentials:"include"}).then(function(response) {
response.text().then(function(text) {
require.cache[prop] = text;
callback(text);
});
});
}
}
};
});
So then, if you put this text.js file directly in the directory represented by "cuwcd", your function call would change to:
require(["cuwcd/text!cuwcd/widgets/Header/header.hbs"], function(hbs) {
//etc
});