Comments (11)
在manifest.json
中用$build.xx
是怎么用的?这个json是怎么经过build的来着
from reskript.
针对service-worker.js
我认为应该单独处理,看起来用Workbox Plugin比较合适?
from reskript.
不过考虑到有多feature的情况,我们确定service-worker.js
只有一个吗?或许需要像service-worker-stable.js
这样命名?
from reskript.
在
manifest.json
中用$build.xx
是怎么用的?这个json是怎么经过build的来着
现在 manifest.json 这个场景还没用到,只是看到里面也有版本相关的信息。以 service-worker.js为例,
precacheAndRoute([
{url: '/index.html', revision: $build.version},
]);
from reskript.
不过考虑到有多feature的情况,我们确定
service-worker.js
只有一个吗?或许需要像service-worker-stable.js
这样命名?
暂时这块还没有遇到需要区分的场景
from reskript.
针对
service-worker.js
我认为应该单独处理,看起来用Workbox Plugin比较合适?
上次是修改 workbox cdn(modulePathPrefix),插件看起来不能配置,我再看看。
from reskript.
我看了一下,如果用InjectManifestPlugin
的话,会生成这样的代码(/xba/assets
是自定义的publicPath
):
precacheAndRoute([
{revision: '4b1f47478ea996a66a122e052b65f352', url: '/xba/assets/../index-stable.html'},
{revision: null, url: '/xba/assets/index.25fb981658f95193eb8d.js'},
]),
它会把所有的编译产出都执行precacheAndRoute
管理起来。
对于你这边的需求,我理解更像是一个顶层的service worker希望把底下子应用的都管起来,此时并没有任何可以注入的manifest可言。对于这种情况,只需要webpack
做一次构建就行,大致如下:
- 放在
src/service-worker.js
下navigator.serviceWorker.register` - 可以是任意内容,但如果有
self.__WB_MANIFEST
这段标记,会打开InjectManifestPlugin
,否则就只做构建 - 产出放在
dist/service-worker-{featureSetName}.js
,如service-worker-stable.js
- 如果有
service-worker.js
,则自动在HTML中注入navigator.serviceWorker.register
的相关代码,不需要手动修改HTML模板,会根据构建的target去注入不同的service worker脚本
因为service-worker.js
是由webpack
构建出来的,所以支持一切skr支持的能力,如$features
和$build
from reskript.
我修改一下标题,更好地说明需要做的事情
from reskript.
@daxuewen 我了解了一下你这边的情况,你这边的service-worker.js
应该是由一个framework构建出来的,最终发布并不是html,是这样么?
from reskript.
from reskript.
@daxuewen 参考 https://ecomfe.github.io/reskript/docs/advanced/multiple-entry#%E8%87%AA%E5%AE%9A%E4%B9%89%E5%85%A5%E5%8F%A3%E9%85%8D%E7%BD%AE
from reskript.
Related Issues (20)
- @babel/helper-compilation-targets: 'opera_mobile' is not a valid target HOT 15
- 纯 vite 部分使用 reskript 包时报错 HOT 2
- info "@esbuild/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation. HOT 1
- 怎样配置不拆包,打包成一个文件 HOT 2
- 支持通过config文件配置devServer host HOT 1
- cli-babel 名为 no-polyfill 的参数,在代码中取值为 polyfill HOT 1
- 支持public dir HOT 1
- --host参数无效 HOT 1
- eslint 规则冲突 HOT 1
- 端口号冲突时自动尝试了下一个端口号,但是控制台提示有误 HOT 2
- 更新模板代码
- 无法引用到settings暴露的类型
- 修改DefinePlugin中的参数报错 HOT 1
- 是否可以支持一下CSS Color Module Level 4 转 hsl,在配置里如何手动加载postcss插件 HOT 1
- portal初始化支持异步
- ESM中的.js未正确引用到.tsx
- 把Stylelint的风格规则改到@stylistic/stylelint-plugin
- 更新webpack-dev-server到5.x
- webpackConfig 增加DefinePlugin,运行失败 HOT 1
- 什么时候能支持 windows 呢 HOT 2
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 reskript.