diff --git a/packages/node-resolve/src/index.js b/packages/node-resolve/src/index.js index 10445e8af..1ed3989e4 100644 --- a/packages/node-resolve/src/index.js +++ b/packages/node-resolve/src/index.js @@ -152,7 +152,7 @@ export function nodeResolve(opts = {}) { const importSpecifierList = [importee]; - if (importer === undefined && !importee[0].match(/^\.?\.?\//)) { + if (importer === undefined && importee[0] && !importee[0].match(/^\.?\.?\//)) { // For module graph roots (i.e. when importer is undefined), we // need to handle 'path fragments` like `foo/bar` that are commonly // found in rollup config files. If importee doesn't look like a diff --git a/packages/node-resolve/test/test.mjs b/packages/node-resolve/test/test.mjs index 64cabc347..dec0cbfce 100755 --- a/packages/node-resolve/test/test.mjs +++ b/packages/node-resolve/test/test.mjs @@ -743,3 +743,15 @@ test('allow other plugins to take over resolution', async (t) => { ] }); }); + +test('error message for invalid entry', async (t) => { + const error = await t.throwsAsync(() => + rollup({ + input: '', + onwarn: failOnWarn(t), + plugins: [nodeResolve()] + }) + ); + + t.is(error.message, `Could not resolve entry module "".`); +});