Need help with directory-named-webpack-plugin?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

shaketbaby
160 Stars 14 Forks MIT License 72 Commits 7 Opened issues

Description

A Webpack plugin that treats a file with the name of directory as the index file

Services available

!
?

Need anything else?

Contributors list

# 504,125
JavaScr...
40 commits
# 39,111
meta-ta...
HTML
html5
favicon
6 commits
# 496,488
Shell
React
react-c...
CSS
4 commits
# 70,500
React
Redux
Storybo...
gatsby
1 commit
# 63,090
Node.js
ESLint
ecmascr...
CSS
1 commit
# 700,485
JavaScr...
1 commit

master requires Webpack V4, please use 2.x versions for Webpack V2.x & V3.x and 1.x versions for Webpack V1

NPM

What

Normally, Webpack looks for index file when the path passed to

require
points to a directory; which means there may have a lot of index files.

This plugin makes it possible to control what file within directory will be treated as entry file.

Usage

Add the following to Webpack's config file:

  var DirectoryNamedWebpackPlugin = require("directory-named-webpack-plugin");

resolve: { plugins: [ new DirectoryNamedWebpackPlugin() ] }

Then when

require("component/foo")
and the path "component/foo" is resolved to a directory, Webpack will try to look for
component/foo/foo.js
as the entry (given default options).

If there is also an index file, e.g.

index.js
, and it should be used as entry file instead of the file with the same name of directory, pass
true
as the first argument when creating new instance.
  var DirectoryNamedWebpackPlugin = require("directory-named-webpack-plugin");

resolve: { plugins: [ new DirectoryNamedWebpackPlugin(true) ] }

You can also pass in an options object to further customise the plugin: ```javascript var DirectoryNamedWebpackPlugin = require("directory-named-webpack-plugin"); var path = require("path");

resolve: { plugins: [ new DirectoryNamedWebpackPlugin({ honorIndex: true | false, // defaults to false

    // respect "main" fields defined in package.json
    // if it's an Array, values will be used as name of the fields to check
    // defaults to true, which is the same as ["main"]
    honorPackage: true | false | ["main"],

// if it's matching with resolving directory's path, plugin will ignore the custom resolving.
// it can be string/regex or Array of string/regex.
exclude: /node_modules/

ignoreFn: function(webpackResolveRequest) {
  // custom logic to decide whether request should be ignored
  // return true if request should be ignored, false otherwise
  return false; // default
},

// define where the imported files will be resolving by DirectoryNamedWebpackPlugin.
// it can be string/regex or Array of string/regex.
include: [
  path.resolve('./app/components'),
  path.resolve('./app/containers')
]

transformFn: function(dirName, dirPath, webpackResolveRequest) {
  // use this function to provide custom transforms of resolving directory name
  // return desired filename or array of filenames which will be used
  // one by one (honoring order) in attempts to resolve module
  return dirName; // default
}

}) ]

} ```

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.