Skip to content

App Prelude 配置

这一页介绍 weapp.appPrelude 的配置。它控制 src/app.prelude.tssrc/app.prelude.js 的注入方式。

如果你想先理解这个功能解决什么问题,请看 App Prelude

weapp.appPrelude

  • 类型
ts
boolean | {
  enabled?: boolean
  mode?: 'inline' | 'entry' | 'require'
  webRuntime?: boolean | WeappWebRuntimeConfig
}
  • 默认值{ mode: 'require' }
ts
import { defineConfig } from 'weapp-vite/config'

export default defineConfig({
  weapp: {
    appPrelude: {
      enabled: true,
      mode: 'require',
    },
  },
})

enabled

  • 类型boolean

是否启用 app.prelude 注入。设置为 false 后,即使源码目录下存在 app.prelude.tsapp.prelude.js,也不会注入。

mode

  • 类型'inline' | 'entry' | 'require'
  • 默认值'require'
行为适合场景
inline把 prelude 代码内联到目标 JS chunk 顶部追求最早执行时机,可以接受重复代码
entry只注入到 app、页面、组件入口 chunk希望控制注入范围
require生成作用域级 app.prelude.js,再在 chunk 顶部静态 require默认推荐,兼顾执行时机和产物体积

require 模式下,主包、普通分包和独立分包会各自拿到对应作用域的 app.prelude.js

NOTE

app.prelude 当前仅支持无 import / export 的自包含脚本。

产物说明

启用 appPrelude 后,构建产物中可能出现:

产物说明
app.prelude.jsrequire 模式下按作用域生成的前置脚本
入口 JS 顶部的 require(...)用于提前执行对应作用域的 app.prelude.js

常见配置

使用默认注入模式

ts
export default defineConfig({
  weapp: {
    appPrelude: {
      mode: 'require',
    },
  },
})

关闭前置脚本注入

ts
export default defineConfig({
  weapp: {
    appPrelude: {
      enabled: false,
    },
  },
})

继续阅读

Released under the MIT License.