Skip to content

Commit 9d380b9

Browse files
committed
Ensure browserResolve has a default filename
Please see: rollup#38 and browserify/browser-resolve#80 for how Node v6+ throws a TypeError if `path.dirname` is passed an undefined value. `node-browser-resolve` currently does not use set a default value if it's `opts.filename` is not specified resulting in the following stack trace: ```javascript [19:40:45] TypeError: Path must be a string. Received undefined at assertPath (path.js:7:11) at Object.dirname (path.js:1324:5) at resolve (/my_app/node_modules/browser-resolve/index.js:218:21) at /my_app/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs.js:46:5 at resolveId (/my_app/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs.js:45:11) at /my_app/node_modules/rollup/dist/rollup.js:2123:32 at tryCatch (/my_app/node_modules/rollup/dist/rollup.js:393:12) at invokeCallback (/my_app/node_modules/rollup/dist/rollup.js:405:13) at publish (/my_app/node_modules/rollup/dist/rollup.js:376:7) at flush (/my_app/node_modules/rollup/dist/rollup.js:120:5) ```
1 parent e93b540 commit 9d380b9

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/index.js

+13-4
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@ export default function nodeResolve ( options ) {
3434
if ( !importer ) return null;
3535

3636
return new Promise( ( accept, reject ) => {
37-
resolveId(
38-
importee,
39-
{
37+
var opts = {
4038
basedir: dirname( importer ),
4139
packageFilter ( pkg ) {
4240
if ( options.jsnext ) {
@@ -54,7 +52,18 @@ export default function nodeResolve ( options ) {
5452
return pkg;
5553
},
5654
extensions: options.extensions
57-
},
55+
};
56+
57+
// NOTE: https://www.npmjs.com/package/browser-resolve running in Node v6+ requires
58+
// opts.filename to **not** be undefined; if we are using browserResolve, ensure that option has
59+
// a default configuration value for 'filename'
60+
if (options.browser) {
61+
opts.filename = __filename;
62+
}
63+
64+
resolveId(
65+
importee,
66+
opts,
5867
( err, resolved ) => {
5968
if ( err ) {
6069
if ( skip === true ) accept( false );

0 commit comments

Comments
 (0)