【问题标题】:How to add dependencies dynamic to a module in webpack?如何将依赖项动态添加到 webpack 中的模块?
【发布时间】:2019-12-09 15:52:34
【问题描述】:

我写了一个插件,主要是为requests提供mock数据,因为这部分是纯独立的,所以在entry文件中没有导入,也就是说webpack无法跟踪这个mock数据的变化。那么如何手动将这个 mock 文件夹添加到 webpack 并使其在开发过程中可以看到呢?谢谢!

【问题讨论】:

    标签: webpack


    【解决方案1】:

    您可以使用extra-watch-webpack-plugin 向 webpack watch 添加额外的文件/目录。

    或者你可以实现类似it implemented的东西。

    compiler.hooks.afterCompile.tap('after-compile', compilation => {
        // for adding a specific file
        fileDependencies.forEach(file => {
          compilation.fileDependencies.add(resolve(file));
        });
    
        // for adding a dir
        dirDependencies.forEach(dir => {
          compilation.contextDependencies.add(dir);
        });
    });
    
    

    【讨论】:

    • 感谢您的回复,但我已经这样做了,抱歉我没有发布它。我得到的问题是如何获取其最新数据。例如,我有一个名为person.json 的模拟文件,我通过main.js(入口文件)中的http 请求,我更新了这个json 文件,更新了应用程序,但是这个请求仍然得到旧版本的数据,我'我试图解决。
    • 听起来像浏览器缓存,与 webpack 无关...添加一个随机的 (new Date().getTime()) 查询字符串请求...
    • 不,不是,我什至刷新了页面,数据仍然是旧的,获取最新的唯一方法是重新启动项目。我想我一定错过了一些部分,但就是想不出来。
    • 哈,这个文件是node需要的吗?如果是这样,节点需要有一个内置的缓存机制......你需要在重新需要它之前破坏它......delete require.cache[require.resolve(module)]; require(module)
    • 啊,是的!我什至没有想到这可能是一个!问题解决了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-01-09
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 2014-12-17
    相关资源
    最近更新 更多