Skip to content

Commit 4a78277

Browse files
authored
Merge pull request #3 from toddbc/webpack4
Support newer webpack versions
2 parents ba19eab + ccaf86c commit 4a78277

File tree

3 files changed

+28
-13
lines changed

3 files changed

+28
-13
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ The config file is executed to find all calls to `require.config()`.
1010

1111
## Usage
1212

13+
In webpack.config.js:
14+
1315
const RequireJsResolverPlugin = require('@sdinteractive/requirejs-resolver');
1416

1517
module.exports = {
@@ -21,3 +23,6 @@ The config file is executed to find all calls to `require.config()`.
2123
],
2224
},
2325
};
26+
27+
Normally for Magento 2, this should be the requirejs-config.js (or requirejs-config.min.js) generated by
28+
the static content process. This will map aliases in the requirejs-config when imported.

index.js

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ function RequireJsResolverPlugin(options) {
77
this.sandbox = options.sandbox || {};
88
}
99

10-
RequireJsResolverPlugin.prototype.getConfig = function(fs) {
10+
RequireJsResolverPlugin.prototype.getConfig = function (fs) {
1111
return new Promise((resolve, reject) => {
1212
if (this.configData) {
1313
return resolve(this.configData);
1414
}
1515

16-
fs.readFile(this.configPath, function(err, buffer) {
16+
fs.readFile(this.configPath, (err, buffer) => {
1717
if (err) {
1818
reject(err);
1919
} else {
@@ -27,15 +27,15 @@ RequireJsResolverPlugin.prototype.getConfig = function(fs) {
2727

2828
let sandbox = Object.assign({
2929
paths: {},
30-
require: function() {
30+
require: () => {
3131
},
3232
}, this.sandbox);
33-
sandbox.require.addPaths = function(paths) {
34-
for (var path in paths) {
33+
sandbox.require.addPaths = function (paths) {
34+
for (let path in paths) {
3535
sandbox.paths[path] = paths[path];
3636
}
3737
};
38-
sandbox.require.config = function(config) {
38+
sandbox.require.config = function (config) {
3939
if (config.paths) {
4040
this.addPaths(config.paths);
4141
}
@@ -55,14 +55,24 @@ RequireJsResolverPlugin.prototype.getConfig = function(fs) {
5555
});
5656
};
5757

58-
RequireJsResolverPlugin.prototype.apply = function(resolver) {
59-
resolver.plugin('module', (request, callback) => {
58+
function registerHook(object, oldName, newName, cb) {
59+
if (object.hooks) {
60+
object.hooks[newName].tapAsync('RequireJsResolverPlugin', cb);
61+
} else {
62+
object.plugin(oldName, cb);
63+
}
64+
}
65+
66+
RequireJsResolverPlugin.prototype.apply = function (resolver) {
67+
const target = resolver.ensureHook('resolve');
68+
registerHook(resolver, 'module', 'module', (request, resolveContext, callback) => {
69+
if (!callback) {
70+
callback = resolveContext;
71+
}
6072
this.getConfig(resolver.fileSystem).then(config => {
6173
if (config[request.request]) {
62-
var nextRequest = Object.assign({}, request, { request: config[request.request] });
63-
return resolver.doResolve('resolve', nextRequest, 'mapping via requirejs-config', function(err, result) {
64-
callback(err, result);
65-
});
74+
const nextRequest = Object.assign({}, request, { request: config[request.request] });
75+
return resolver.doResolve(target, nextRequest, 'mapping via requirejs-config', callback);
6676
} else {
6777
callback();
6878
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sdinteractive/requirejs-resolver",
3-
"version": "1.1.0",
3+
"version": "2.0.0",
44
"description": "webpack resolver to find requirejs modules via requirejs config.",
55
"main": "index.js",
66
"scripts": {

0 commit comments

Comments
 (0)