Как узнать, откуда на диске загружается модуль? - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть модуль @vendorname/functions, который не существует в файловой системе в соответствии с npm list

$ npm ls @vendorname/functions
serverless-commerce@1.0.0 C:\Users\mikem\OneDrive\Documents\myapp\myapp
`-- (empty)

Он также не существует в соответствии с демонстрационным файлом:

$ node
> require("@vendorname/functions")
{ Error: Cannot find module '@vendorname/functions'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:580:15)
    at Function.Module._load (internal/modules/cjs/loader.js:506:25)
    at Module.require (internal/modules/cjs/loader.js:636:17)
    at require (internal/modules/cjs/helpers.js:20:18) code: 'MODULE_NOT_FOUND' }

Однако у меня есть часть программного обеспечения в родительской папке C:\Users\mikem\OneDrive\Documents\myapp\myapp, которая использует модуль, и он работает:

let vendornameFunctions = require("@vendorname/functions"),

log(`>>> MYSTERY FILE IS BEING IMPORTED ${JSON.dumps(vendornameFunctions, null, 2)}`);

Возвращает:

>>> MYSTERY FILE IS BEING IMPORTED {
    "events": {},
    "queues": {},
    "tables": {},
    "html": {},
    "json": {},
    "css": {},
    "js": {},
    "text": {},
    "xml": {}
}

Я могу надежно повторить это поведение. Как определить, откуда на диске загружается модуль?

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете использовать require.resolve, чтобы получить путь к модулю.

console.log(require.resolve("@vendorname/functions"));
...