Noncollinear Perpendicular Microcrystalline

    @ad2302/find-imports
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.1 • Public • Published

    find-imports build status Coverage Status

    NPM

    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 = require('webpack');
    var findImports = require('find-imports');
    
    // Webpack Configuration
    module.exports = {
        entry: {
            app: [
                './src/index.js'
            ],
            vendor: findImports('src/**/*.{js,jsx}', { flatten: true })
        },
        output: {
            path: path.join(__dirname, 'dist'),
            filename: '[name].js'
        },
        plugins: [
            new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js')
        ]
    };

    Installation

    npm install --save-dev find-imports

    Usage

    The default options only return package imports:

    import findImports from 'find-imports';
    
    const files = [
        // glob pattern
        'src/**/*.{js,jsx}',
    
        // use negative glob pattern to exclude files
        '!src/**/*.spec.js'
    ];
    
    findImports(files);
    // → { 'src/index.jsx':
    //     [ 'lodash',
    //       'async',
    //       'jsuri',
    //       'react',
    //       'react-dom',
    //       'react-router' ] }

    To flatten the output:

    findImports(files, { flatten: true });
    // → [ 'lodash',
    //     'async',
    //     'jsuri',
    //     'react',
    //     'react-dom',
    //     'react-router' ]

    To return absolute and relative imports:

    findImports(files, {
        absoluteImports: true,
        relativeImports: true
    });
    // → { 'src/index.jsx':
    //     [ 'lodash',
    //       'async',
    //       'jsuri',
    //       'react',
    //       'react-dom',
    //       'react-router',
    //       '/index.styl',
    //       './index.css' ] }

    To only return absolute and relative imports (no packages):

    findImports(files, {
        absoluteImports: true,
        relativeImports: true,
        packageImports: false
    });
    // → { '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.

    Keywords

    none

    Install

    npm i @ad2302/find-imports

    DownloadsWeekly Downloads

    30

    Version

    2.0.1

    License

    MIT

    Unpacked Size

    37.1 kB

    Total Files

    18

    Last publish

    Collaborators

    • bung87