Gatsby在生产构建中禁用缓存



当您将Gatsby应用程序构建到生产构建中时,您将在控制台中看到以下内容:

success Caching JavaScript and CSS webpack compilation - 25.915s
success Caching HTML renderer compilation - 14.491s

Gatsby缓存了一些构建文件,以便后续构建将更快。问题是,我正在将项目部署到不支持缓存的服务中。部署完成后,所有内容都将被丢弃。所以把20%的构建时间花在缓存上是没有意义的。

有没有人知道如何禁用缓存,而构建生产构建?

有两种方法(据我所知)可以做到这一点,或者至少您可以尝试:

  • 在你的gatsby-node.js使用onPostBuildAPI调用,其中缓存管理设置:

    exports.onPostBuild = async function ({ cache, graphql }, { query }) {
    const cacheKey = "some-key-name"
    const twentyFourHoursInMilliseconds = 24 * 60 * 60 * 1000 // 86400000
    let obj = await cache.get(cacheKey)
    if (!obj) {
    obj = { created: Date.now() }
    const data = await graphql(query)
    obj.data = data
    } else if (Date.now() > obj.lastChecked + twentyFourHoursInMilliseconds) {
    /* Reload after a day */
    const data = await graphql(query)
    obj.data = data
    }
    obj.lastChecked = Date.now()
    await cache.set(cacheKey, obj)
    /* Do something with data ... */
    }
    

    你可以尝试在缓存起作用之前返回/跳过函数。

  • 尝试使用盖茨比标志:

    module.exports = {
    flags: {
    PRESERVE_WEBPACK_CACHE: false,
    PRESERVE_FILE_DOWNLOAD_CACHE: false
    },
    plugins: [...]
    }
    

    在这种情况下,PRESERVE_WEBPACK_CACHEPRESERVE_FILE_DOWNLOAD_CACHE可能对您有用。

也许你可以用这些方法开始拉线程。

相关内容

  • 没有找到相关文章

最新更新