rollup-plugin-node-resolve
Advanced tools
Comparing version 2.1.1 to 3.0.0
# rollup-plugin-node-resolve changelog | ||
## 3.0.0 | ||
* [BREAKING] Remove `options.skip` ([#90](https://github.com/rollup/rollup-plugin-node-resolve/pull/90)) | ||
* Add `modulesOnly` option ([#96](https://github.com/rollup/rollup-plugin-node-resolve/pull/96)) | ||
## 2.1.1 | ||
@@ -4,0 +9,0 @@ |
@@ -9,2 +9,3 @@ 'use strict'; | ||
var browserResolve = _interopDefault(require('browser-resolve')); | ||
var isModule = _interopDefault(require('is-module')); | ||
var fs = _interopDefault(require('fs')); | ||
@@ -24,6 +25,5 @@ | ||
var skip = options.skip || []; | ||
var useJsnext = options.jsnext === true; | ||
var useModule = options.module !== false; | ||
var useMain = options.main !== false; | ||
var useJsnext = options.jsnext === true; | ||
var isPreferBuiltinsSet = options.preferBuiltins === true || options.preferBuiltins === false; | ||
@@ -37,2 +37,10 @@ var preferBuiltins = isPreferBuiltinsSet ? options.preferBuiltins : true; | ||
if ( options.skip ) { | ||
throw new Error( 'options.skip is no longer supported — you should use the main Rollup `externals` option instead' ); | ||
} | ||
if ( !useModule && !useMain && !useJsnext ) { | ||
throw new Error( "At least one of options.module, options.main or options.jsnext must be true" ); | ||
} | ||
return { | ||
@@ -58,5 +66,5 @@ name: 'node-resolve', | ||
if ( skip !== true && ~skip.indexOf( id ) ) { return null; } | ||
return new Promise( function ( fulfil, reject ) { | ||
var disregardResult = false; | ||
return new Promise( function ( accept, reject ) { | ||
resolveId( | ||
@@ -67,6 +75,3 @@ importee, | ||
packageFilter: function packageFilter ( pkg ) { | ||
if ( !useJsnext && !useMain && !useModule ) { | ||
if ( skip === true ) { accept( false ); } | ||
else { reject( Error( ("To import from a package in node_modules (" + importee + "), either options.jsnext, options.module or options.main must be true") ) ); } | ||
} else if ( useModule && pkg[ 'module' ] ) { | ||
if ( useModule && pkg[ 'module' ] ) { | ||
pkg[ 'main' ] = pkg[ 'module' ]; | ||
@@ -76,4 +81,3 @@ } else if ( useJsnext && pkg[ 'jsnext:main' ] ) { | ||
} else if ( ( useJsnext || useModule ) && !useMain ) { | ||
if ( skip === true ) { accept( false ); } | ||
else { reject( Error( ("Package " + importee + " (imported by " + importer + ") does not have a module or jsnext:main field. You should either allow legacy modules with options.main, or skip it with options.skip = ['" + importee + "'])") ) ); } | ||
disregardResult = true; | ||
} | ||
@@ -85,14 +89,11 @@ return pkg; | ||
function ( err, resolved ) { | ||
if ( resolved && fs.existsSync( resolved ) ) { | ||
resolved = fs.realpathSync( resolved ); | ||
} | ||
if ( !disregardResult && !err ) { | ||
if ( resolved && fs.existsSync( resolved ) ) { | ||
resolved = fs.realpathSync( resolved ); | ||
} | ||
if ( err ) { | ||
if ( skip === true ) { accept( false ); } | ||
else { reject( Error( ("Could not resolve '" + importee + "' from " + (path.normalize( importer ))) ) ); } | ||
} else { | ||
if ( resolved === COMMONJS_BROWSER_EMPTY ) { | ||
accept( ES6_BROWSER_EMPTY ); | ||
fulfil( ES6_BROWSER_EMPTY ); | ||
} else if ( ~builtins.indexOf( resolved ) ) { | ||
accept( null ); | ||
fulfil( null ); | ||
} else if ( ~builtins.indexOf( importee ) && preferBuiltins ) { | ||
@@ -106,9 +107,20 @@ if ( !isPreferBuiltinsSet ) { | ||
} | ||
accept( null ); | ||
fulfil( null ); | ||
} else if ( jail && resolved.indexOf( path.normalize( jail.trim( path.sep ) ) ) !== 0 ) { | ||
accept( null ); | ||
} else { | ||
accept( resolved ); | ||
fulfil( null ); | ||
} | ||
} | ||
if ( resolved && options.modulesOnly ) { | ||
fs.readFile( resolved, 'utf-8', function ( err, code ) { | ||
if ( err ) { | ||
reject( err ); | ||
} else { | ||
var valid = isModule( code ); | ||
fulfil( valid ? resolved : null ); | ||
} | ||
}); | ||
} else { | ||
fulfil( resolved ); | ||
} | ||
} | ||
@@ -115,0 +127,0 @@ ); |
@@ -5,2 +5,3 @@ import { dirname, normalize, resolve, sep } from 'path'; | ||
import browserResolve from 'browser-resolve'; | ||
import isModule from 'is-module'; | ||
import fs from 'fs'; | ||
@@ -20,6 +21,5 @@ | ||
var skip = options.skip || []; | ||
var useJsnext = options.jsnext === true; | ||
var useModule = options.module !== false; | ||
var useMain = options.main !== false; | ||
var useJsnext = options.jsnext === true; | ||
var isPreferBuiltinsSet = options.preferBuiltins === true || options.preferBuiltins === false; | ||
@@ -33,2 +33,10 @@ var preferBuiltins = isPreferBuiltinsSet ? options.preferBuiltins : true; | ||
if ( options.skip ) { | ||
throw new Error( 'options.skip is no longer supported — you should use the main Rollup `externals` option instead' ); | ||
} | ||
if ( !useModule && !useMain && !useJsnext ) { | ||
throw new Error( "At least one of options.module, options.main or options.jsnext must be true" ); | ||
} | ||
return { | ||
@@ -54,5 +62,5 @@ name: 'node-resolve', | ||
if ( skip !== true && ~skip.indexOf( id ) ) { return null; } | ||
return new Promise( function ( fulfil, reject ) { | ||
var disregardResult = false; | ||
return new Promise( function ( accept, reject ) { | ||
resolveId( | ||
@@ -63,6 +71,3 @@ importee, | ||
packageFilter: function packageFilter ( pkg ) { | ||
if ( !useJsnext && !useMain && !useModule ) { | ||
if ( skip === true ) { accept( false ); } | ||
else { reject( Error( ("To import from a package in node_modules (" + importee + "), either options.jsnext, options.module or options.main must be true") ) ); } | ||
} else if ( useModule && pkg[ 'module' ] ) { | ||
if ( useModule && pkg[ 'module' ] ) { | ||
pkg[ 'main' ] = pkg[ 'module' ]; | ||
@@ -72,4 +77,3 @@ } else if ( useJsnext && pkg[ 'jsnext:main' ] ) { | ||
} else if ( ( useJsnext || useModule ) && !useMain ) { | ||
if ( skip === true ) { accept( false ); } | ||
else { reject( Error( ("Package " + importee + " (imported by " + importer + ") does not have a module or jsnext:main field. You should either allow legacy modules with options.main, or skip it with options.skip = ['" + importee + "'])") ) ); } | ||
disregardResult = true; | ||
} | ||
@@ -81,14 +85,11 @@ return pkg; | ||
function ( err, resolved ) { | ||
if ( resolved && fs.existsSync( resolved ) ) { | ||
resolved = fs.realpathSync( resolved ); | ||
} | ||
if ( !disregardResult && !err ) { | ||
if ( resolved && fs.existsSync( resolved ) ) { | ||
resolved = fs.realpathSync( resolved ); | ||
} | ||
if ( err ) { | ||
if ( skip === true ) { accept( false ); } | ||
else { reject( Error( ("Could not resolve '" + importee + "' from " + (normalize( importer ))) ) ); } | ||
} else { | ||
if ( resolved === COMMONJS_BROWSER_EMPTY ) { | ||
accept( ES6_BROWSER_EMPTY ); | ||
fulfil( ES6_BROWSER_EMPTY ); | ||
} else if ( ~builtins.indexOf( resolved ) ) { | ||
accept( null ); | ||
fulfil( null ); | ||
} else if ( ~builtins.indexOf( importee ) && preferBuiltins ) { | ||
@@ -102,9 +103,20 @@ if ( !isPreferBuiltinsSet ) { | ||
} | ||
accept( null ); | ||
fulfil( null ); | ||
} else if ( jail && resolved.indexOf( normalize( jail.trim( sep ) ) ) !== 0 ) { | ||
accept( null ); | ||
} else { | ||
accept( resolved ); | ||
fulfil( null ); | ||
} | ||
} | ||
if ( resolved && options.modulesOnly ) { | ||
fs.readFile( resolved, 'utf-8', function ( err, code ) { | ||
if ( err ) { | ||
reject( err ); | ||
} else { | ||
var valid = isModule( code ); | ||
fulfil( valid ? resolved : null ); | ||
} | ||
}); | ||
} else { | ||
fulfil( resolved ); | ||
} | ||
} | ||
@@ -111,0 +123,0 @@ ); |
{ | ||
"name": "rollup-plugin-node-resolve", | ||
"description": "Bundle third-party dependencies in node_modules", | ||
"version": "2.1.1", | ||
"version": "3.0.0", | ||
"devDependencies": { | ||
@@ -20,3 +20,4 @@ "buble": "^0.15.2", | ||
"scripts": { | ||
"pretest": "rollup -c", | ||
"build": "rollup -c", | ||
"pretest": "npm run build", | ||
"test": "mocha", | ||
@@ -34,2 +35,3 @@ "posttest": "eslint src test/*.js", | ||
"builtin-modules": "^1.1.0", | ||
"is-module": "^1.0.0", | ||
"resolve": "^1.1.6" | ||
@@ -36,0 +38,0 @@ }, |
@@ -39,8 +39,2 @@ # rollup-plugin-node-resolve | ||
// if there's something your bundle requires that you DON'T | ||
// want to include, add it to 'skip'. Local and relative imports | ||
// can be skipped by giving the full filepath. E.g., | ||
// `path.resolve('src/relative-dependency.js')` | ||
skip: [ 'some-big-dependency' ], // Default: [] | ||
// some package.json files have a `browser` field which | ||
@@ -63,2 +57,6 @@ // specifies alternative files to load for people bundling | ||
// If true, inspect resolved files to check that they are | ||
// ES2015 modules | ||
modulesOnly: true, // Default: false | ||
// Any additional options that should be passed through | ||
@@ -65,0 +63,0 @@ // to node-resolve |
@@ -5,2 +5,3 @@ import { dirname, resolve, normalize, sep } from 'path'; | ||
import browserResolve from 'browser-resolve'; | ||
import isModule from 'is-module'; | ||
import fs from 'fs'; | ||
@@ -13,6 +14,5 @@ | ||
export default function nodeResolve ( options = {} ) { | ||
const skip = options.skip || []; | ||
const useJsnext = options.jsnext === true; | ||
const useModule = options.module !== false; | ||
const useMain = options.main !== false; | ||
const useJsnext = options.jsnext === true; | ||
const isPreferBuiltinsSet = options.preferBuiltins === true || options.preferBuiltins === false; | ||
@@ -26,2 +26,10 @@ const preferBuiltins = isPreferBuiltinsSet ? options.preferBuiltins : true; | ||
if ( options.skip ) { | ||
throw new Error( 'options.skip is no longer supported — you should use the main Rollup `externals` option instead' ); | ||
} | ||
if ( !useModule && !useMain && !useJsnext ) { | ||
throw new Error( `At least one of options.module, options.main or options.jsnext must be true` ); | ||
} | ||
return { | ||
@@ -47,5 +55,5 @@ name: 'node-resolve', | ||
if ( skip !== true && ~skip.indexOf( id ) ) return null; | ||
return new Promise( ( fulfil, reject ) => { | ||
let disregardResult = false; | ||
return new Promise( ( accept, reject ) => { | ||
resolveId( | ||
@@ -56,6 +64,3 @@ importee, | ||
packageFilter ( pkg ) { | ||
if ( !useJsnext && !useMain && !useModule ) { | ||
if ( skip === true ) accept( false ); | ||
else reject( Error( `To import from a package in node_modules (${importee}), either options.jsnext, options.module or options.main must be true` ) ); | ||
} else if ( useModule && pkg[ 'module' ] ) { | ||
if ( useModule && pkg[ 'module' ] ) { | ||
pkg[ 'main' ] = pkg[ 'module' ]; | ||
@@ -65,4 +70,3 @@ } else if ( useJsnext && pkg[ 'jsnext:main' ] ) { | ||
} else if ( ( useJsnext || useModule ) && !useMain ) { | ||
if ( skip === true ) accept( false ); | ||
else reject( Error( `Package ${importee} (imported by ${importer}) does not have a module or jsnext:main field. You should either allow legacy modules with options.main, or skip it with options.skip = ['${importee}'])` ) ); | ||
disregardResult = true; | ||
} | ||
@@ -74,14 +78,11 @@ return pkg; | ||
( err, resolved ) => { | ||
if ( resolved && fs.existsSync( resolved ) ) { | ||
resolved = fs.realpathSync( resolved ); | ||
} | ||
if ( !disregardResult && !err ) { | ||
if ( resolved && fs.existsSync( resolved ) ) { | ||
resolved = fs.realpathSync( resolved ); | ||
} | ||
if ( err ) { | ||
if ( skip === true ) accept( false ); | ||
else reject( Error( `Could not resolve '${importee}' from ${normalize( importer )}` ) ); | ||
} else { | ||
if ( resolved === COMMONJS_BROWSER_EMPTY ) { | ||
accept( ES6_BROWSER_EMPTY ); | ||
fulfil( ES6_BROWSER_EMPTY ); | ||
} else if ( ~builtins.indexOf( resolved ) ) { | ||
accept( null ); | ||
fulfil( null ); | ||
} else if ( ~builtins.indexOf( importee ) && preferBuiltins ) { | ||
@@ -95,9 +96,20 @@ if ( !isPreferBuiltinsSet ) { | ||
} | ||
accept( null ); | ||
fulfil( null ); | ||
} else if ( jail && resolved.indexOf( normalize( jail.trim( sep ) ) ) !== 0 ) { | ||
accept( null ); | ||
} else { | ||
accept( resolved ); | ||
fulfil( null ); | ||
} | ||
} | ||
if ( resolved && options.modulesOnly ) { | ||
fs.readFile( resolved, 'utf-8', ( err, code ) => { | ||
if ( err ) { | ||
reject( err ); | ||
} else { | ||
const valid = isModule( code ); | ||
fulfil( valid ? resolved : null ); | ||
} | ||
}); | ||
} else { | ||
fulfil( resolved ); | ||
} | ||
} | ||
@@ -104,0 +116,0 @@ ); |
17828
4
7
309
96
+ Addedis-module@^1.0.0
+ Addedis-module@1.0.0(transitive)