$ cnpm install custom-resolve
Return a function works like substack's node-resolve
, with some options set by default.
⌘ 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
node-resolve
, and when the returned custom resolve function called, options passed to it will overwrite the corresponding default options.packageEntry
option is replaced by main
.symlinks
option is replaced by symlink
. Check symlink
for more details.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.
Specify the package entry. If defaultOptions
is String
, it is treated as the main
option.
Type: String
Default: main
Specify the file path where to start resolving.
It is meant to make setting the basedir
option conveniently.
Type: String
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.
Copyright 2014 - 2017 © taobao.org |