npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

webpack-static-chache-zip

v1.1.2

Published

static file zip to file and diff

Readme

webpack-static-chache-zip

webpack静态文件缓存插件

安装插件

使用npm或者是yarn安装,因为这个包是发布到Npm 的,公司的私有源可能不能够及时的同步npm发布的最新版本,建议安装的时候指定 registry

npm i webpack-static-chache-zip --save-dev --registry=https://registry.npmjs.org/

使用指南


const AkWebpackPlugin = require('webpack-static-chache-zip');

    // 初始化插件
    new AkWebpackPlugin({
    // 最终生成的离线包名称,默认值是 `offline`
    'offlineDir': 'offline',

    // 生成环境的代码源,默认值 `output` webpack编译产出生产环境代码的目录
    'src': 'output',
    // 是否保留生成的离线包文件夹(zip包的源文件)
    'keepOffline': true,

    // 模糊匹配html扩展名, http://xxxx/xx http://xxxx/xx/ http://xxxx/xx/index.html http://xxxx/xx/index.htm
    'fuzzyHtmlExtend': true,

    // 开启编译时是否先清理offzip目录下的zip文件
    'deleteOffZip': true,

    // datatype: [必填] 1(Android乘客端),2(Android司机端),101(iOS乘客端),102(iOS司机端)

    'datatype': '',
    // terminal_id 业务名称,比如乘客端钱包,不能重复 具体查看wiki  http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=118882082

    'terminal_id': '',
    // 如果存在一个data_type 对应多个terminal_id 的情况。 可以按照下面的方法以数组对象的方式列出来
    'terminal_list': [
        {
            data_type: 1
            terminal_id: 2
        },
        {
            data_type: 1
            terminal_id: 2
        }
        ...
    ],

    // 想要包含的文件路径,模糊匹配,优先级高于  excludeFile
    'includeFile': [
      'balance_topup',
      'static',
      'pay_history'
    ],

    // 需要排除的文件路径 模糊匹配优先级低于  includeFile
    'excludeFile': [
        'repay_qa',
        'test',
        'pay_account',
        'fill_phonenum',
        'balance_qa',
        'select_operator',
        'payment_status'
    ],
    // 缓存的文件类型,默认是 html js css   如果需要缓存其它类型文件  ['png', 'jpg']
    'cacheFileTypes': [],

    // 产品线ID 为保持唯一性 接触模块请到  http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=272106764  查看自己使用的module已经被使用
    // 接入是也请登记自己的module
    'module': 'passenger-wallet',


    // path.join('项目根目录', diffJsonDest, `diff.json`) 默认是 path.join('src', 'offzip', 'diff.json')
    'diffJsonDest': '',

    // 页面域名 ,可以配置多个域名,主要适用于一个文件上线后可能被多个域名使用的场景
    // 比如: https://aaaa.com/a.html 和 https://bbbb.com/a.html  其实访问是同一个文件只是由于业务场景的不同使用不同的域名
    'pageHost': 'https://page.didiglobal.com',

    // urlpath
    'urlPath': '/global/passenger-wallet/',

    // 这个字段和下面的 patchCdnPath 较为特殊。比如我们打包产出的路径   /xxxx/xx/output/aaa/bb/index.html  在上线的时候实际上是将output目录copy到了
    // 服务器上 原理上我们的页面的url 应该是 https://page.didiglobal.com/aaa/bb/index.html  但是某些项目可能为了缩短路径查找 通过ngxin 配置 我们实际访问
    // 的 https://page.didiglobal.com/index.html  所在在这里可以配置 patchUrlPath: 'aaa/bb'
    'patchUrlPath': '',

    // cdn域名 静态文件域名(js/css/html) 如果不配置或者设置为空数组会默认使用pageHost
    'cdnHost': 'https://static.didiglobal.com',

    // cdnpath 如果不设置会默认使用 urlPath
    'cdnPath': '',

    // 参考上面的patchUrlPath使用方法
    'patchCdnPath': '',

    // zip文件的域名如果不设置会默认使用 cdnHost
    'zipHost': '',

    // zipPath  如果不设置会默认使用cdnPath
    'zipPath': '',


    // 一个H5页面会跑在不同端内(比如我们巴西和global司机是两个单独的客户端),这两个端内的h5页面又有不同的
    // page域名和static域名 这个时候可以通过otherHost配置来设置环境页面和静态文件的域名,
    // 可以不设置或者为空
    'otherHost': {
      // page和cdn均支持配置数组,如果只有一个额外的域名建议如下配置为字符串,如果要支持多个,则配置为数组的形式
      // 页面的域名  [xxx, xxxx]
      'page': 'page.99taxis.mobi',
      // 可以设置单独的 cdn域名如果不设置则与page域名相同
      //  [xxx, xxxx] 会检查与上面page域名数组长度是否相同,如果不同会以 cdnHost 补全
      'cdn': 'static.99taxis.mobi'
    },

    // 压缩参数,详参 https://archiverjs.com
    'zipConfig': {zlib: {level: 9} },
    // 下列回调方法,可以直接使用this.fs (fs-extra), this.success, this.info, this.warn, this.alert
    // 在 拷贝文件到 offline 离线文件夹之前
    beforeCopy: function () {},
    // 在 拷贝文件到 offline 离线文件夹之后
    afterCopy: function () {

    },
    // 在压缩 offline 离线文件夹之前
    beforeZip: function (offlineFiles) {
        // offlineFiles 在离线包文件夹内的文件路径信息
    },
    // 在压缩 offline 离线文件夹之后
    afterZip: function (zipFilePath) {
        // zipFilePath 最终生成的离线zip包路径
    }
})

更新日志:

2019.12.23

  1. 多域名支持配置更多的域名。使用方法参考文档;
  2. 对html域名进行衍生,比如http://xxx/xx/index.html,会衍生出 http://xxx/xxhttp://xxx/xx/http://xxx/xx/index.htm
  3. 针对编译完成后是否需要执行 push 脚本进行提示;

2019.11.13

  1. 插件支持多实例(可以new 多次),可以根据每次的配置生成不同的zip包;

2019.11.11

  1. 添加deleteOffZip 配置,可以在启动编译是删除 offzip 目录下的zip文件,防止zip文件过多不好管理;
  2. diff.json只保存5个版本的build信息,以及清除diff.json中多余的build文件信息;
  3. 第N次编译如果文件信息不发生变化,不生成空的diff目录和zip文件,也不对diff.json文件进行修改;
  4. diff.json的位置可以配置;