Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Brotli support #118

Closed
emilbader opened this issue Mar 4, 2019 · 5 comments · Fixed by #119
Closed

Brotli support #118

emilbader opened this issue Mar 4, 2019 · 5 comments · Fixed by #119

Comments

@emilbader
Copy link

  • Operating System: macOS Mojave (10.14.3)
  • Node Version: 10.15.2
  • NPM Version: 6.4.1
  • webpack Version: 4.28.4
  • webpack-defaults Version: N/A

Feature Proposal

Node 11.7.0 has native support for Brotli compression in its zlib module.

Feature Use Case

@alexander-akait
Copy link
Member

Feel free to send a PR

@khalwat
Copy link
Contributor

khalwat commented Mar 9, 2019

I'm happy to report that this already "just works" (no need for a PR). You just need to be running Node 11.7.0 or later:

new CompressionPlugin({
        filename: '[path].br[query]',
        algorithm: 'brotliCompress',
        test: /\.(js|css|html|svg)$/,
        compressionOptions: { level: 11 },
        threshold: 10240,
        minRatio: 0.8,
        deleteOriginalAssets: false
    }),
new CompressionPlugin({
        filename: '[path].gz[query]',
        algorithm: 'gzip',
        test: /\.(js|css|html|svg)$/,
        compressionOptions: { level: 9 },
        threshold: 10240,
        minRatio: 0.8,
        deleteOriginalAssets: false
    }),

output:

-rw-rw-r--   1 andrew  staff    61K Mar  9 10:37 vendors~amplitudeplayer.161a2c2f6376e617a7f5.js
-rw-rw-r--   1 andrew  staff   9.0K Mar  9 10:37 vendors~amplitudeplayer.161a2c2f6376e617a7f5.js.br
-rw-rw-r--   1 andrew  staff    10K Mar  9 10:42 vendors~amplitudeplayer.161a2c2f6376e617a7f5.js.gz
-rw-rw-r--   1 andrew  staff    14K Mar  9 10:37 vendors~vuetable.64419ea49293de11cc61.js
-rw-rw-r--   1 andrew  staff   4.5K Mar  9 10:37 vendors~vuetable.64419ea49293de11cc61.js.br
-rw-rw-r--   1 andrew  staff   5.1K Mar  9 10:42 vendors~vuetable.64419ea49293de11cc61.js.gz
-rw-rw-r--   1 andrew  staff    96K Mar  9 10:37 vendors~vue~vueclickaway.6fb24bd01d62bc0ff86c.js
-rw-rw-r--   1 andrew  staff    31K Mar  9 10:37 vendors~vue~vueclickaway.6fb24bd01d62bc0ff86c.js.br
-rw-rw-r--   1 andrew  staff    35K Mar  9 10:42 vendors~vue~vueclickaway.6fb24bd01d62bc0ff86c.js.gz

Additional options can be found here: https://github.com/nodejs/node/blob/master/doc/api/zlib.md#compressor-options

@alexander-akait
Copy link
Member

@khalwat can you send a PR to Example section? Thanks!

@khalwat
Copy link
Contributor

khalwat commented Mar 12, 2019

@evilebottnawi done -> #119

@ahmad2smile
Copy link

Any way to support with npm install brotli for use case when we can't upgrade node version even in build system. I'm on node:8-jessie

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants