代码之家  ›  专栏  ›  技术社区  ›  Dave Stein

有没有一种方法可以找到使用Webpack的模块所需的缓存密钥?

  •  1
  • Dave Stein  · 技术社区  · 7 年前

    我正在使用Require加载一个大文件,当它完成后,我想从缓存中删除它。如果没有这些,每个文件都将永远留在内存中,这是我不想要的。运行 delete require.cache['path/to/file'] 本地工作。当我运行生产构建时,该密钥不再存在。我相信这是Webpack打包所有东西的方式,但不确定如何确认。有办法解决这个问题吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Dave Stein    7 年前

    使用 require.resolve 获取模块的规范路径,NPM使用该路径作为缓存键。

    const key = require.resolve('path/to/file')
    delete require.cache[key]
    

    这个 docs for require.resolve 说:

    使用internal require()机制查找模块的位置,但不加载模块,只返回解析的文件名。