diff --git a/index.js b/index.js index 0d52cfb..5009f60 100644 --- a/index.js +++ b/index.js @@ -50,6 +50,10 @@ function tryResolve(pkg, importer) { return relative.resolve(pkg, importer); } catch (err) { if (err.code === 'MODULE_NOT_FOUND') return null; + if (err.code === 'ERR_PACKAGE_PATH_NOT_EXPORTED') { + console.warn(`WARNING: Could not read svelte config from ${pkg}. Reason: ${err.message}`); + return null; + } throw err; } } diff --git a/test/test.js b/test/test.js index c48e0e0..f96c26f 100644 --- a/test/test.js +++ b/test/test.js @@ -33,6 +33,22 @@ describe('rollup-plugin-svelte', () => { ); }); + it('ignores esm module not exporting package.json', () => { + const { resolveId } = plugin(); + assert.equal( + resolveId('esm-module-without-svelte-config', path.resolve('test/foo/main.js')), + null + ); + }); + + it('resolves esm module exporting package.json', () => { + const { resolveId } = plugin(); + assert.equal( + resolveId('esm-widget', path.resolve('test/foo/main.js')), + path.resolve('test/node_modules/esm-widget/src/Widget.html') + ); + }); + it('ignores virtual modules', () => { const { resolveId } = plugin(); assert.equal(