Git Product home page Git Product logo

Comments (11)

otakustay avatar otakustay commented on August 23, 2024

manifest.json中用$build.xx是怎么用的?这个json是怎么经过build的来着

from reskript.

otakustay avatar otakustay commented on August 23, 2024

针对service-worker.js我认为应该单独处理,看起来用Workbox Plugin比较合适?

from reskript.

otakustay avatar otakustay commented on August 23, 2024

不过考虑到有多feature的情况,我们确定service-worker.js只有一个吗?或许需要像service-worker-stable.js这样命名?

from reskript.

daxuewen avatar daxuewen commented on August 23, 2024

manifest.json中用$build.xx是怎么用的?这个json是怎么经过build的来着

现在 manifest.json 这个场景还没用到,只是看到里面也有版本相关的信息。以 service-worker.js为例,

precacheAndRoute([
    {url: '/index.html', revision: $build.version},
]);

from reskript.

daxuewen avatar daxuewen commented on August 23, 2024

不过考虑到有多feature的情况,我们确定service-worker.js只有一个吗?或许需要像service-worker-stable.js这样命名?

暂时这块还没有遇到需要区分的场景

from reskript.

daxuewen avatar daxuewen commented on August 23, 2024

针对service-worker.js我认为应该单独处理,看起来用Workbox Plugin比较合适?

上次是修改 workbox cdn(modulePathPrefix),插件看起来不能配置,我再看看。

from reskript.

otakustay avatar otakustay commented on August 23, 2024

我看了一下,如果用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做一次构建就行,大致如下:

  1. 放在src/service-worker.js下navigator.serviceWorker.register`
  2. 可以是任意内容,但如果有self.__WB_MANIFEST这段标记,会打开InjectManifestPlugin,否则就只做构建
  3. 产出放在dist/service-worker-{featureSetName}.js,如service-worker-stable.js
  4. 如果有service-worker.js,则自动在HTML中注入navigator.serviceWorker.register的相关代码,不需要手动修改HTML模板,会根据构建的target去注入不同的service worker脚本

因为service-worker.js是由webpack构建出来的,所以支持一切skr支持的能力,如$features$build

from reskript.

otakustay avatar otakustay commented on August 23, 2024

我修改一下标题,更好地说明需要做的事情

from reskript.

otakustay avatar otakustay commented on August 23, 2024

@daxuewen 我了解了一下你这边的情况,你这边的service-worker.js应该是由一个framework构建出来的,最终发布并不是html,是这样么?

from reskript.

otakustay avatar otakustay commented on August 23, 2024

@daxuewen 你的问题我计划用 #56 解决

from reskript.

otakustay avatar otakustay commented on August 23, 2024

@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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.