File tree 1 file changed +27
-1
lines changed
packages/utils/node-resolver-core/src
1 file changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -290,6 +290,7 @@ export default class NodeResolver {
290
290
291
291
// Auto install node builtin polyfills if not already available
292
292
if (resolved === undefined && builtin != null) {
293
+ let packageName = builtin.split('/')[0];
293
294
let packageManager = this.packageManager;
294
295
if (packageManager) {
295
296
this.logger?.warn({
@@ -312,7 +313,7 @@ export default class NodeResolver {
312
313
'https://parceljs.org/features/node-emulation/#polyfilling-%26-excluding-builtin-node-modules',
313
314
});
314
315
315
- await packageManager.resolve(builtin , this.projectRoot + '/index', {
316
+ await packageManager.resolve(packageName , this.projectRoot + '/index', {
316
317
saveDev: true,
317
318
shouldAutoInstall: true,
318
319
});
@@ -323,6 +324,31 @@ export default class NodeResolver {
323
324
} catch (err) {
324
325
// ignore
325
326
}
327
+ } else {
328
+ throw new ThrowableDiagnostic({
329
+ diagnostic: {
330
+ message: md` Node builtin polyfill "${packageName } " is not installed , but auto install is disabled . `,
331
+ codeFrames: [
332
+ {
333
+ filePath: ctx.loc?.filePath ?? sourceFile,
334
+ codeHighlights: ctx.loc
335
+ ? [
336
+ {
337
+ message: 'used here',
338
+ start: ctx.loc.start,
339
+ end: ctx.loc.end,
340
+ },
341
+ ]
342
+ : [],
343
+ },
344
+ ],
345
+ documentationURL:
346
+ 'https://parceljs.org/features/node-emulation/#polyfilling-%26-excluding-builtin-node-modules',
347
+ hints: [
348
+ md` Install the "${packageName } " package with your package manager , and run Parcel again . `,
349
+ ],
350
+ },
351
+ });
326
352
}
327
353
}
328
354
You can’t perform that action at this time.
0 commit comments