esbuild를 사용하는 모든 앱의 사용자 지정 서비스 작업자
7218 단어 webdevcodenewbiejavascript
어디에서 시작 했습니까?
Angular 11로 커스텀 서비스 워커를 설정하려고 하는데 가이드https://angular.io/guide/service-worker-getting-started에서 Angular/pwa 모듈을 설치하고 https://angular.io/guide/service-worker-communications을 읽은 다음 Angular의 서비스 워커 생성 방식에 적응하라고 했습니다. 글쎄요, 제게는 많은 일처럼 보였기 때문에 커스텀 서비스 워커를 추가하기 위한 프레임워크에 구애받지 않는 프로세스를 만들기 시작했습니다. 돌이켜 생각해보면 fairly easier with Vue 2 and 3 이었던 것 같은데 엉뚱한 방식으로 느껴졌습니다.
솔루션을 보여주세요!
0단계. 설치esbuild
1단계. workbox-config.js를 생성합니다.
여기에서 workbox 구성에 무엇이 있는지 자세히 알아보세요.
module.exports = {
globDirectory: "dist/",
globPatterns: [
"**/*.{css,eot,html,ico,jpg,js,json,png,svg,ttf,txt,webmanifest,woff,woff2,webm,xml}",
],
globFollow: true,
globStrict: true,
globIgnores: [
"**/*-es5.*.js",
"3rdpartylicenses.txt",
"assets/images/icons/icon-*.png",
],
dontCacheBustURLsMatching: new RegExp(".+.[a-f0-9]{20}..+"),
maximumFileSizeToCacheInBytes: 5000000,
swSrc: "dist/service-worker.js",
swDest: "dist/service-worker.js",
};
2단계. compile_sw.js 만들기:
const { build } = require("esbuild")
build({
entryPoints: ["./path/to/service-worker.js"],
outfile: "./dist/service-worker.js",
minify: true,
bundle: true,
define: {
'process.env.NODE_ENV': '"production"',
'process.env.SOME_VARIABLE': '"SOME_VALUE"'
},
}).catch(() => process.exit(1))
3단계. 컴파일 및 주입:
npx workbox-cli injectManifest && node compile_sw.js
4단계. 서비스 워커 등록 ✨
<script>
// Check that service workers are supported
if ('serviceWorker' in navigator) {
// Use the window load event to keep the page load performant
window.addEventListener('load', () => {
navigator.serviceWorker.register('/service-worker.js');
});
}
</script>
그게 다야, 즐기세요! 이게 도움이 되길 바란다!
Reference
이 문제에 관하여(esbuild를 사용하는 모든 앱의 사용자 지정 서비스 작업자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/reeshee/custom-service-worker-in-any-app-with-esbuild-3020텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)