Skip to content

Commit e772a62

Browse files
committed
fix: remove inner defined modules from deps
1 parent 8d34292 commit e772a62

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

spec/transformers/defines.spec.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,17 @@ test('defines ignores multiple defines case 3', t => {
137137
t.end();
138138
});
139139

140+
test('defines ignores inner deps', t => {
141+
const multi = 'define("foo", function() {});\n' +
142+
'define("bar", ["foo", "loo"], function (require) { var foo = require("foo"); });\n';
143+
const r = defines('bar', multi);
144+
t.deepEqual(r.defined, ['foo', 'bar']);
145+
t.notOk(r.shimed);
146+
t.deepEqual(r.deps, ["loo"]);
147+
t.equal(r.contents, multi);
148+
t.end();
149+
});
150+
140151
test('defines ignores empty define call', t => {
141152
const empty = 'define();\n';
142153
const r = defines('empty', empty);

src/transformers/defines.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,12 @@ export default function(moduleId, amdContents, shim) {
2525
}
2626

2727
// remove cjs constants
28-
result.deps = result.deps.filter(d =>
29-
!(d === 'require' || d === 'exports' || d === 'module')
30-
);
28+
result.deps = result.deps.filter(d => {
29+
if (d === 'require' || d === 'exports' || d === 'module') return false;
30+
if (typeof result.defined === 'string' && d === result.defined) return false;
31+
if (Array.isArray(result.defined) && result.defined.indexOf(d) !== -1) return false;
32+
return true;
33+
});
3134

3235
if (!shim) return result;
3336
// bypass shim settings as package already defined amd module

0 commit comments

Comments
 (0)