custom-resolve
v1.0.1
Published
Sugar way to customize substack's resolve
Downloads
19
Readme
custom-resolve
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 bymain
. - The
symlinks
option is replaced bysymlink
. Checksymlink
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.