Comments (2)
I'm a bit unsure as to what you exactly mean. By default, a list of assets emitted by webpack is included in your service worker. They all include the hash in their filename, if that's what you setup in your webpack config.
If you need more information about the build to be available in your ServiceWorker you can supply transformOptions
, which receives all the webpack build info. In one of my own projects, I have it setup like so:
const swPlugin = new ServiceWorkerWebpackPlugin({
entry: path.join(context, 'src/sw.js'),
publicPath: '/public/',
filename: 'sw.js',
transformOptions: (swOption) => {
// The list of cachable assets contains contains, for each file,
// a hash of their content. A complete hash of that would be
// perfect as cache name.
// We need to add a cache of the service worker file though,
// as that one doesn't have a content cache
const hash = crypto.createHash('sha1');
hash.update([
JSON.stringify(swOption.assets),
fs.readFileSync(path.join(context, 'src/sw.js'), 'utf8'),
isProduction ? '1' : Math.random(),
].join('-'));
return {
isProduction,
watch,
assets: swOption.assets,
buildId: `${pkg.version}-${hash.digest('hex')}`,
};
},
});
And use buildId
as cache name (caches.open(serviceWorkerOption.buildId)
).
Hope this helps.
from serviceworker-webpack-plugin.
I think it would be nice to have webpack build hash among the jsonStats object. It could be added to the cache name to make cache unique for every build. All that should be done is the change of this line to true.
Or maybe it will more extendable if we could pass whole stats object as a plugin option?
from serviceworker-webpack-plugin.
Related Issues (20)
- ServiceWorker script evaluation failed
- DOMException error
- Feature: pass arbitrary data to serviceworker
- Don't detect minification using webpack.optimize HOT 5
- Is there a way to add babel-polyfill using options ? HOT 6
- Serious issues with sourcemaps and multiple webpack configs. HOT 2
- Unexpected using UglifyJSPlugin in development mode HOT 3
- webpack 4 support HOT 3
- The script has an unsupported MIME type ('text/html') HOT 7
- postinstall script requires yarn HOT 1
- import runtime from 'serviceworker-webpack-plugin/lib/runtime'; always throws error HOT 1
- Cannot get the plugin to load the sw.js file inside dist folder HOT 1
- Easy way to disable plugin HOT 1
- Specify absolute path HOT 2
- Eslint dont produce explanation about errors
- Minimizing errors with UglisyJsPlugin HOT 1
- Webpack bootstrap code in sw.js file
- getRegistration
- it doesn't work with nuxt
- typescript definitions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from serviceworker-webpack-plugin.