| 123456789101112131415161718192021 |
- import resolveCb from 'enhanced-resolve';
- import { promisify } from 'util';
- import { CliExpectedError } from './error.mjs';
- export const commonJsResolve = promisify(resolveCb);
- /**
- * Resolves the module in context of the configuration.
- *
- * Only does traditional Node resolution without looking at the `exports` field
- * or alternative extensions (cjs/mjs) to match what the VS Code loader does.
- */
- export const mustResolve = async (context, moduleName) => {
- const path = await commonJsResolve(context, moduleName);
- if (!path) {
- let msg = `Could not resolve module "${moduleName}" in ${path}`;
- if (!moduleName.startsWith('.')) {
- msg += ' (you may need to install with `npm install`)';
- }
- throw new CliExpectedError(msg);
- }
- return path;
- };
|