custom-resolve
Sugar way to customize substack's resolve
Last updated 5 years ago by zoubin .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install custom-resolve 
SYNC missed versions from official npm registry.

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.

Current Tags

  • 1.0.1                                ...           latest (5 years ago)

11 Versions

  • 1.0.1                                ...           5 years ago
  • 1.0.0                                ...           5 years ago
  • 0.2.1                                ...           5 years ago
  • 0.2.0                                ...           5 years ago
  • 0.1.6                                ...           5 years ago
  • 0.1.5                                ...           5 years ago
  • 0.1.4                                ...           6 years ago
  • 0.1.3                                ...           6 years ago
  • 0.1.2                                ...           6 years ago
  • 0.1.1                                ...           6 years ago
  • 0.1.0                                ...           6 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 2
Last Day 0
Last Week 0
Last Month 0
Dependencies (3)
Dev Dependencies (2)

Copyright 2014 - 2017 © taobao.org |