custom-resolve

1.0.1 • Public • Published

custom-resolve

version status coverage dependencies devDependencies

Return a function works like substack's node-resolve, with some options set by default.

Example

⌘ tree example/
example/
├── node_modules
│   └── colors
│       ├── colors.scss
│       └── package.json
├── resolve.js
└── style_modules
    └── red
        └── index.scss

example/node_modules/colors/package.json:

{
  "style": "colors"
}

example/resolve.js:

var resolver = require('..')
var path = require('path')
 
var resolve = resolver({
  main: 'style',
  extensions: ['.scss'],
})
 
resolve('colors', function (err, file) {
  console.log(path.relative(__dirname, file))
})
 
console.log(
  path.relative(__dirname, resolve.sync('./red', {
    basedir: path.join(__dirname, 'style_modules'),
  }))
)
 

output:

⌘ node example/resolve.js
style_modules/red/index.scss
node_modules/colors/colors.scss

Breaking changes in v1.0.0

  • The options specified will be treated as the default options for node-resolve, and when the returned custom resolve function called, options passed to it will overwrite the corresponding default options.
  • The packageEntry option is replaced by main.
  • The symlinks option is replaced by symlink. Check symlink for more details.
  • The API only receives one argument.

resolve = resolver(defaultOptions)

Return a function like node-resolve, with some of the options set by default according to defaultOptions.

When resolve is called with extra options, they overwrite those in defaultOptions.

Besides all options supported by node-resolve, defaultOptions supports the following options.

Refer to node-resolve for more information about supported options.

main

Specify the package entry. If defaultOptions is String, it is treated as the main option.

Type: String

Default: main

filename

Specify the file path where to start resolving.

It is meant to make setting the basedir option conveniently.

Type: String

symlink

Specify how to treat symlinks in the top node_modules directory.

Type: true

All symlinks will be resolved to their realpaths.

Type: Array, String

Only those specified will be resolved to realpaths.

Type: Function

Signature: needRealpath = symlink(file)

Realpaths are used only when this function returns a truthy value.

Package Sidebar

Install

npm i custom-resolve

Weekly Downloads

12

Version

1.0.1

License

MIT

Last publish

Collaborators

  • zoubin