@electric-sql/pglite-prepopulatedfs

中文文档
0.5.16发布于 2026/11/09Apache-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 36.7万

用于更快 PGlite 启动的预集文件系统

中文使用文档
文档目录3 节
  1. 安装
  2. 使用量
  3. 基准制定

滑翔前人口数f

一种可供您使用而不是允许initdb运行(这是默认的)的预先被流行的FS. 这可以导致更快的起跑时间,因为initdb不需要运行.

安装方式 :

npm install @electric-sql/pglite-prepopulatedfs

此软件包包含一个存档, 作为静态资产, 您可以通过 dataDir() 函数.

* 信息 预先配置的FS是在我们的CI的基础上创建的,因此保证只为它创建的PGlite的相应版本工作. 如果您遇到问题, 请确保这个软件包与您的 PGlite 版本保持一致 . * :

安装

npm install @electric-sql/pglite-prepopulatedfs
# or
yarn add @electric-sql/pglite-prepopulatedfs
# or
pnpm add @electric-sql/pglite-prepopulatedfs

使用量

import { PGlite } from '@electric-sql/pglite'
import { dataDir } from '@electric-sql/pglite-prepopulatedfs'

// Create a PGlite instance with the prepopulated FS
const pg = await PGlite.create({
  loadDataDir: await dataDir(),
})

例如,当您有多个测试时,每个测试都有它自己的 PGlite 实例时,这样做是有用的 。 考虑下列使用:

import { describe, it, expect, beforeEach } from 'vitest'
import { PGlite } from '@electric-sql/pglite'
import { dataDir } from '@electric-sql/pglite-prepopulatedfs'

describe('query and exec with different data sizes', () => {
  let pg: PGlite

  beforeEach(async () => {
    pg = await PGlite.create({
      loadDataDir: await dataDir(),
    })

    await pg.exec(`
        // setup default data
      `)
  })

  describe('test no. 1', () => {
    ...
  })

  describe('test no. 2', () => {
    ...
  })

  // many more tests here
})

虽然需要更多的带宽才能下载 @electric-sql/pglite-prepopulatedfs 软件包,由于 PGlite 不需要运行,测试会更快运行 initdb 每个人的.

同样的情况也适用于您的申请需要一次又一次地用一个干净的板块对PGlite进行即时处理。 您将初始化使用更多的带宽, 但会节省速度的长期.

基准制定

作为我们自动测试的一部分,我们做了一个简单的基准 packages/pglite-prepopulatedfs/tests/prepopulatedfs.test.ts。 。 。 .

以下是苹果M1上的样本输出:

initdb duration: prepopulated avg (trimmed) 263.38 ms vs. classic initdb 886.29 ms.
Speedup: 3.37x

版本与发布记录

@electric-sql/pglite-prepopulatedfs 共发布 20 个版本,首次发布于 2026/04/02;过去 12 个月发布了 20 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.5.16latest2026/11/094 天前
0.5.152026/11/0310 天前
0.5.142026/10/3113 天前
0.5.132026/10/2816 天前
0.5.122026/10/2618 天前
0.5.112026/10/2123 天前

关于 @electric-sql/pglite-prepopulatedfs 的常见问题

@electric-sql/pglite-prepopulatedfs 是什么?

用于更快 PGlite 启动的预集文件系统

如何安装 @electric-sql/pglite-prepopulatedfs?

在项目目录运行 npm install @electric-sql/pglite-prepopulatedfs,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@electric-sql/pglite(0.5.16)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@electric-sql/pglite-prepopulatedfs 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@electric-sql/pglite-prepopulatedfs 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@electric-sql/pglite-prepopulatedfs 可以商用吗?

@electric-sql/pglite-prepopulatedfs 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@electric-sql/pglite-prepopulatedfs 的下载量有多少?

根据 npm 官方下载统计,@electric-sql/pglite-prepopulatedfs 在 2026/10/14 – 2026/11/12 这 30 天内被下载 366,619 次,日均约 12,221 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@electric-sql/pglite-prepopulatedfs 还在维护吗?

最新版本 0.5.16 发布于 2026/11/09(4 天前);至今共发布 20 个版本,其中过去 12 个月发布了 20 个;首次发布于 2026/04/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。