框架
工作流
生产构建

创建生产环境构建

要创建用于分发的生产包,请运行以下命令:

pnpm build
# 或者
npm run build

生成 zip 包

要创建一个可以上传到应用商店的生产 zip 包,请使用 package 命令:

pnpm package
# 或者
npm run package

如果您希望将构建和打包过程合并,请改用带有 --zip 标志的 build 命令:

pnpm build --zip
# 或者
npm run build -- --zip

指定目标

build 命令接受 --target 标志,格式为 <browser-name>-<manifest-version>。使用它来指定要构建的目标浏览器和清单版本组合:

plasmo build --target=firefox-mv2

最终的包将位于 build/firefox-mv2-prod 目录中。您可以使用任何浏览器目标和清单版本对。

有关官方支持的目标列表,请访问此链接。这些目标被捆绑器识别,并会自动处理一些特定于供应商的行为。

--target 标志还允许您:

  • 使用目标特定的环境文件:.env.<browser-name>
  • 使用目标特定的入口文件:例如 popup.<browser-name>.tsx
  • process.env.PLASMO_BROWSER 设置为 <browser-name>

第三个功能与死代码消除配合工作。因此,以下代码:

if (process.env.PLASMO_BROWSER === "safari") {
  console.log("A")
} else {
  console.log("B")
}

如果目标是 safari-mv3,则会被简化为 console.log("A")

自定义标签

Plasmo 使用 prod 标签进行生产构建。您可以使用 --tag 标志更改此行为:

plasmo build --tag=staging

上述命令将:

  • build/chrome-mv3-staging 目录中创建包
  • process.env.PLASMO_TAG 环境变量设置为 staging
  • 解析并优先处理 .env.staging.env.staging.local(如果存在)

源映射

默认情况下,Plasmo 不会为您的生产包生成源映射。但是,您可以使用 --source-maps 标志更改此行为:

plasmo build --source-maps

Bundle Buddy

如果您想分析您的包,可以使用 --bundle-buddy 标志,结合 --source-maps 来生成 Bundle Buddy (opens in a new tab) 报告:

plasmo build --source-maps --bundle-buddy

优化

要创建禁用压缩的包:

plasmo build --no-minify

要创建导入优化的构建,其中包会去重并将依赖项提升到包的顶部:

plasmo build --hoist

请注意,提升可能会破坏您的依赖项,特别是那些通过插件系统导入动态依赖项的依赖项。然而,提升可以显著提高打包速度并减少包的大小。

您可以根据需要组合这些标志。