代码之家  ›  专栏  ›  技术社区  ›  mikemaccana

如何知道从磁盘上的何处加载模块?

  •  1
  • mikemaccana  · 技术社区  · 7 年前

    我有一个模块 @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 回复  |  直到 7 年前
        1
  •  2
  •   Dan D.    7 年前

    require.resolve

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