mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
25 lines
895 B
JavaScript
25 lines
895 B
JavaScript
|
// Next.js needs to use module.resolve to generate paths to modules it includes,
|
||
|
// but those paths need to be relative to something so that they're portable
|
||
|
// across directories and machines.
|
||
|
//
|
||
|
// This function returns paths relative to the top-level 'node_modules'
|
||
|
// directory found in the path. If none is found, returns the complete path.
|
||
|
|
||
|
const RELATIVE_START = 'node_modules/'
|
||
|
|
||
|
// Pass in the module's `require` object since it's module-specific.
|
||
|
export default (moduleRequire) => (path) => {
|
||
|
// package.json removed because babel-runtime is resolved as
|
||
|
// "babel-runtime/package"
|
||
|
const absolutePath = moduleRequire.resolve(path)
|
||
|
.replace(/[\\/]package\.json$/, '')
|
||
|
|
||
|
const relativeStartIndex = absolutePath.indexOf(RELATIVE_START)
|
||
|
|
||
|
if (relativeStartIndex === -1) {
|
||
|
return absolutePath
|
||
|
}
|
||
|
|
||
|
return absolutePath.substring(relativeStartIndex + RELATIVE_START.length)
|
||
|
}
|