Find all imported modules in JavaScript files. It's useful for bundling 3rd-party libraries into a vendor.js using webpack. For example:
var webpack = ;var findImports = ; // Webpack Configurationmoduleexports = entry: app: './src/index.js' vendor: output: path: path filename: '[name].js' plugins: 'vendor' 'vendor.js' ;
Installation
npm install --save-dev find-imports
Usage
The default options only return package imports:
; const files = // glob pattern 'src/**/*.{js,jsx}' // use negative glob pattern to exclude files '!src/**/*.spec.js'; ;// → { 'src/index.jsx':// [ 'lodash',// 'async',// 'jsuri',// 'react',// 'react-dom',// 'react-router' ] }
To flatten the output:
;// → [ 'lodash',// 'async',// 'jsuri',// 'react',// 'react-dom',// 'react-router' ]
To return absolute and relative imports:
;// → { 'src/index.jsx':// [ 'lodash',// 'async',// 'jsuri',// 'react',// 'react-dom',// 'react-router',// '/index.styl',// './index.css' ] }
To only return absolute and relative imports (no packages):
;// → { 'src/index.jsx':// [ '/index.styl',// './index.css' ] }
Options
Below are the options with their default values:
flatten: false packageImports: true absoluteImports: false relativeImports: false
flatten
Type: Boolean
Default: false
Sets true to flatten the output and filter duplicate ones.
packageImports
Type: Boolean
Default: true
Sets true to return package imports.
absoluteImports
Type: Boolean
Default: false
Sets true to return absolute imports.
relativeImports
Type: Boolean
Default: false
Sets false to return relative imports.
License
Copyright (c) 2016 Cheton Wu
Licensed under the MIT License.