Skip to content

Commit dbd6f51

Browse files
vladniculatimneutkens
authored andcommitted
Fix dynamic import in non webpack env regression vercel#3345 (vercel#4208)
Just in case vercel#3345 was a regression and nextjs should still support non webpack node envs for testing.
1 parent 9b88eef commit dbd6f51

File tree

1 file changed

+26
-16
lines changed

1 file changed

+26
-16
lines changed

server/build/babel/plugins/handle-import.js

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,33 @@ const TYPE_IMPORT = 'Import'
1616

1717
const buildImport = (args) => (template(`
1818
(
19-
new (require('next/dynamic').SameLoopPromise)((resolve, reject) => {
20-
const weakId = require.resolveWeak(SOURCE)
21-
try {
22-
const weakModule = __webpack_require__(weakId)
23-
return resolve(weakModule)
24-
} catch (err) {}
25-
26-
require.ensure([], (require) => {
27-
try {
19+
typeof require.resolveWeak !== 'function' ?
20+
new (require('next/dynamic').SameLoopPromise)((resolve, reject) => {
21+
eval('require.ensure = function (deps, callback) { callback(require) }')
22+
require.ensure([], (require) => {
2823
let m = require(SOURCE)
29-
m.__webpackChunkName = '${args.name}'
30-
resolve(m)
31-
} catch(error) {
32-
reject(error)
33-
}
34-
}, 'chunks/${args.name}');
35-
})
24+
m.__webpackChunkName = '${args.name}.js'
25+
resolve(m);
26+
}, 'chunks/${args.name}.js');
27+
})
28+
:
29+
new (require('next/dynamic').SameLoopPromise)((resolve, reject) => {
30+
const weakId = require.resolveWeak(SOURCE)
31+
try {
32+
const weakModule = __webpack_require__(weakId)
33+
return resolve(weakModule)
34+
} catch (err) {}
35+
36+
require.ensure([], (require) => {
37+
try {
38+
let m = require(SOURCE)
39+
m.__webpackChunkName = '${args.name}'
40+
resolve(m)
41+
} catch(error) {
42+
reject(error)
43+
}
44+
}, 'chunks/${args.name}');
45+
})
3646
)
3747
`))
3848

0 commit comments

Comments
 (0)