wxq-t-1991
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

orginal from https://github.com/AngusFu/webpack5-cdn-plugin

Docs

Install

npm i @stary/webpack5-cdn-plugin -D

Usage

const { Webpack5CDNPlugin } = require('@stary/webpack5-cdn-plugin')

let cacheData = null;

// webpack config
module.exports = {
  plugins: [
    // ...
    new Webpack5CDNPlugin({
      keepLocalFiles: false,
      manifestFilename: 'manifest.json',
      uploadContent({ file, extname, content }) {
        const hash = md5(content)
        
        if (cacheData.has(hash)) {
          return Promise.resolve(cacheData.get(hash))
        }

        // NOTE 需要自己实现上传文件、重试、并发控制
        // demo: https://gist.github.com/AngusFu/b99b0ffb001b0bf4009d09b5e3b041d6
        return uploadTaskManager
          .upload(content)
          .then(result => {
            cacheData.set(hash, result.url)
            return result.url
          })
      },
      before() {
        cacheData = readCache()
      },
      done() {
        persistCache(cacheData)
      }
    })
  ]
}

Readme

Keywords

none

Package Sidebar

Install

npm i wxq-t-1991

Weekly Downloads

2

Version

1.0.0

License

MIT

Unpacked Size

34.3 kB

Total Files

10

Last publish

Collaborators

  • quantum_ng