开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
开发 > 框架 > 小程序全局配置 > 项目配置
收藏
订阅更新
我的文档
设置
简介

开发者可以在项目根目录中创建 mini.project.json ,并通过它来实现项目的编译、开发等相关功能。
使用说明
小程序开发者工具 ide 3.0.1 以上版本。
命令行工具 cli 1.4.0 及以上版本。
完整属性
完整的 mini.project.json format2 有以下属性。
属性
类型
默认值
描述
format
number
2
固定值
compiletype
"mini" | "plugin"
"mini"
编译类型,用于区分小程序应用 / 小程序插件。
miniprogramroot
path string
"./"
指定小程序源码的相对路径 (app.json文件所在目录)。 - 当 compiletype 为 miniprogram 时,为应用目录。 - 当 compiletype 为 plugin 时,仅用于小程序插件的预览宿主应用目录。 说明: 开发者无法单独预览小程序插件,为支持该功能支付宝在小程序插件项目中内置了预览宿主应用。
pluginroot
path string
-
指定插件项目的相对路径 (plugin.json文件所在目录)。 说明: 仅当 compiletype 为 plugin 时有效,用于声明插件目录,以及 plugin.json 的实际查询路径。更多详情可查看 插件开发

compileoptions
object
-
编译相关的配置,更多详情可查看下方表格说明。
uploadexclude
string[]
-
用户本地代码上传时需要忽略的文件。 字段接受一个字符串数组。支持 glob 语法。 底层使用 minimatch 3.0.4 版本进行匹配。
assetsinclude
string[]
-
用户构建后需要打包至产物中的资产。 字段接受一个字符串数组。支持 glob 语法。底层使用 minimatch 3.0.4 版本进行匹配。
developoptions
object
-
本地开发的相关配置
pluginresolution
object
-
插件联调选项
scripts
object
-
小程序预构建脚本相关的配置
compileoptions
属性
类型
默认值
描述
component2
boolean
false
自定义组件是否开启新的生命周期运行模型,更多详情可查看 生命周期
说明: 如果在 app.json 中开启了 plugins 或 usedynamicplugins 则会强制开启 component2 运行模式。
typescript
boolean
false
小程序是否启用 typescript 支持,更多详情可查看 typescript 和 less 编译

less
boolean
false
小程序是否启用 less 支持,更多详情可查看 typescript 和 less 编译

treeshaking
boolean
false
是否在生产构建时进行 tree shaking 优化
resolvealias
object
-
ide 3.7.5 开始支持路径别名配置, 更多详情可查看 resolvealias
globalobjectmode
string
-
小程序全局对象(global/globalthis)访问策略, 更多详情可查看 globalobjectmode
transpile
object
-
小程序代码转 es5 配置(新), 更多详情可查看 transpile
resolvealias
使用 resolvealias 配置项可以自定义源文件路径的映射规则。resolvealias 的键表示代码中的文件路径的匹配规则,值表示映射到的真实路径。
示例
小程序项目路径为 /workspace/todoapp
它的 mini.project.json 的内容如下:
小程序项目内的 js 文件中引用 resolvealias 中指定了映射规则的路径时会达到以下效果:
注意 b/utils 是对项目外的文件的引用,构建将会失败,在这里仅供示例参考。
映射规则限制
1resolvealias 配置的目标路径都相对于 mini.project.json 所在的目录。
2resolvealias 只进行目录级别的别名,因此 resolvealias 的键值都必须以 /* 为结尾。
3resolvealias 只对路径进行字符串前缀匹配,不能配置更复杂的规则。
4resolvealias 的键不能以 / 为前缀,因为 / 开头的路径在小程序中始终相对于 miniprogramroot/pluginroot,具有比 alias 更高的优先级。
5resolvealias 的值不能以 / 为前缀。
6如果存在两个规则,其中一个规则是另一个规则的前缀,那么匹配时最具体的键将生效。
例如, resolvealias 配置中同时存在 hello/world/* => ./a/*hello/* => ./b/* 两条规则,那么 hello/world/a 会指向 ./a/ahello/b 会指向 ./b/b
生效范围
javascript / typescript 文件中的:
import 语句
require() 函数调用
acss / less 文件中的:
@import 指令
函数调用
sjs 文件中的:
import 语句
axml 文件中的:



注意 -所有其他地方所写的路径,如 app.json 等各类 .json 文件中的路径原则上都不会遵循 resolvealias 的配置。 -resolvealias 不会对 node_modules 中的文件生效。
globalobjectmode
小程序全局对象的访问策略,通过该配置可以控制小程序中访问全局对象 global 以及 globalthis 的表现。
使用要求
小程序开发者工具 ide 3.8.1 以上版本
命令行工具 cli 2.0.0 及以上版本
可选值

含义
legacy
禁止访问全局对象
enable
(推荐)可访问到真实的小程序 javascript 全局对象  global 与 globalthis
fake
可访问到一个全局挂载的虚拟空对象
示例
enable (可访问 global/globalthis)
fake (global/globalthis 指向虚拟对象)
transpile
属性
类型
默认值
描述
script
object
-
小程序代码转 es5 配置
使用要求
小程序开发者工具 ide 3.8.1 以上版本
命令行工具 cli 2.0.0 及以上版本
script
开启 es2023 的语法支持,并可以通过配置项指定不需要进行编译的文件或文件夹。
配置
属性
类型
默认值
描述
ignore
string[]
[]
通过 glob 规则跳过某些文件/目录的转译
ignore 规则
转译时,小程序编译器将相对于项目目录(当前项目 mini.project.json 配置文件所在目录) 对 ignore 数组中配置的规则进行 glob 匹配,命中任意 glob 规则的文件都不会进行转译。 如果需要表示不要忽略某些文件,可以添加含有 ! 前缀的反向 glob 规则以包含这些文件的转译,例如
以上配置表示忽略当前目录下的 node_modules/ 下的所有文件,但不忽略 node_modules/lodash-es/ 下面的文件
常用示例
1不编译项目源码以及 node_modules,适用于小程序源码编译到 es5 了的预编译框架
2仅编译项目源码,适用于常见前端项目
3编译项目源码以及部分 node_modules
4编译项目源码以及 node_modules:全都不忽略
uploadexclude/assetsinclude
以下为小程序构建产物包的默认打包资源。
assetsinclude 打包白名单
小程序的构建产物包默认只会包含必要的业务产物代码和资源文件,未识别的资源类型不会出现在包内,以减小包体积。 默认打包的资源文件见下:
图片
.png
.jpg
.jpeg
.gif
.svg
.webp
字体
.eot
.woff
.ttf
.woff2
.otf
多媒体
.mp3
.mp4
如小程序需要引入自定义的资源文件,可配置 assetsinclude 白名单, 以下配置将会把所有 .aaa 以及 .bbb 后缀的文件也打进产物包内。
uploadexclude 打包黑名单
小程序上传时,会将本地源码打包传到云端进行构建,除了上方资源文件列表外,源码包还会包含以下内容:
小程序源码文件
.acss
.axml
.js
.json
.sjs
依赖包
node_modules目录
如果源码包经过 zip 压缩后,包大小仍然超过 ide 的阈值(当前为20m),上传时会报 包大小超限 的错误。可以根据需要,对云端构建不需要的文件配置 uploadexclude 黑名单,如代码经过了 src > dist 的预编译以及 miniprogramroot 目录之外的 devdependencies 依赖。以下配置表示源码包内将不会包含项目根目录下 src 和 node_modules 目录中的文件。
developoptions
developoptions 字段接受一个对象,其属性值见下。
属性
类型
默认值
描述
hotreload
boolean
false
是否开启产物热更新。配置后开启模拟器热更新。 支持的范围: - axml - acss - js 文件中的 method
parallel
boolean
true
是否开启多进程构建。小程序默认使用多进程编译,如果资源占用过大,可以通过 parallel: false 关闭多进程。
sourcemap
boolean
true
ide 3.8.1 开始支持,是否开启生成 sourcemap。本地开发时默认开启 sourcemap ,如果资源占用过大,可以通过 sourcemap: false 关闭 sourcemap。
minify
boolean
true
ide 3.8.1 开始支持,是否开启代码压缩。如果构建耗时过长,或者资源占用过大导致构建失败,可以通过 minify: false 关闭代码压缩。
skiptranspile
boolean
false
ide 3.8.8 开始支持,是否跳过 es5 转译, 以加快开发时构建速度。
lazycompile
boolean
false
ide 3.8.8 开始支持,是否按需编译页面, 以加快开发时构建速度。必须在 app.json 中同时开启 lazycodeloading: true
disableparallel
boolean
false
(已废弃,请使用 parallel)是否禁止多进程构建。
disablesourcemap
boolean
false
(已废弃,请使用 sourcemap)是否禁止生成 sourcemap
pluginresolution
pluginresolution 字段接受一个对象,其属性值见下。
属性
类型
默认值
描述
enable
boolean
false
是否启用调试配置
plugins
record
{}
指定插件联调的静态插件版本
dynamicplugins
record
{}
指定插件联调的动态插件版本
当需要进行 插件快捷联调 时,可以将 enable 设置为 true 并在 plugins 和 dynamicplugins 中配置对应的插件版本信息键值对,key 为插件 appid,value 为插件版本信息,属性见下。 说明:开启快捷联调,仅在 ide 模拟器或真机预览、真机调试等生成的线下版本中生效。
属性
类型
必填
描述
version
string

插件联调版本信息
一个常见的联调示例见下,表示静态插件 2020111122223333 指定特定联调版本 dev:a.b.c.d。
scripts
针对预处理的场景, 提供了 precompile 的配置入口,允许用户在编译前/预览前/上传前先执行预处理逻辑。该逻辑会在 ide 以及伙伴、雨燕链路中生效。 scripts 字段接受一个对象,其属性值见下。
属性
类型
执行时机
watch
string
ide 模拟器编译时执行,进程持续存在。
beforecompile
string
ide 模拟器编译时执行,执行后退出 beforecompile 进程。
beforepreview
string
真机预览/真机调试前执行
beforeupload
string
ide 上传前执行
触发时机
ide 模拟器编译时:
watch 脚本优先级高于 beforecompile,两者只会执行其一。
watch 模式下,预构建脚本与 ide 构建 server 同时运行。
beforecompile 模式下,ide 构建 server 会等待脚本执行完才启动。
真机预览/真机调试前将执行 beforepreview 钩子。
ide 上传前将执行 beforeupload 钩子。
迁移至新项目配置
迁移文档请参考 迁移至新项目配置
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录