UNPKG

parcel-bundler

Version:

<p align="center"> <a href="https://parceljs.org/" target="_blank"> <img alt="Parcel" src="https://user-images.githubusercontent.com/19409/31321658-f6aed0f2-ac3d-11e7-8100-1587e676e0ec.png" width="749"> </a> </p>

28 lines (23 loc) 668 B
const {dirname} = require('path'); const resolve = require('resolve'); const install = require('./installPackage'); const cache = new Map(); async function localRequire(name, path, triedInstall = false) { let basedir = dirname(path); let key = basedir + ':' + name; let resolved = cache.get(key); if (!resolved) { try { resolved = resolve.sync(name, {basedir}); } catch (e) { if (e.code === 'MODULE_NOT_FOUND' && !triedInstall) { await install(path, name); return localRequire(name, path, true); } throw e; } cache.set(key, resolved); } return require(resolved); } module.exports = localRequire;