项目配置文件¶
版本:v2.21.0 更新:2021 年 12 月 25 日
可以在项目根目录使用 project.config.json 文件对项目进行配置。
字段名 |
类型 |
说明 |
---|---|---|
miniprogramRoot |
Path String |
指定小程序源码的目录(需为相对路径) |
qcloudRoot |
Path String |
指定腾讯云项目的目录(需为相对路径) |
pluginRoot |
Path String |
指定插件项目的目录(需为相对路径) |
cloudbaseRoot |
Path String |
云开发代码根目录 |
compileType |
String |
编译类型 |
setting |
Object |
项目设置 |
libVersion |
String |
基础库版本 |
appid |
String |
项目的 appid,只在新建项目时读取 |
projectname |
String |
项目名字,只在新建项目时读取 |
packOptions |
Object |
打包配置选项 |
debugOptions |
Object |
调试配置选项 |
watchOptions |
Object |
文件监听配置设置 |
scripts |
Object |
自定义预处理 |
compileType 有效值
名字 |
说明 |
---|---|
miniprogram |
当前为普通小程序项目 |
plugin |
当前为小程序插件项目 |
setting 中可以指定以下设置
字段名 |
类型 |
说明 |
---|---|---|
es6 |
Boolean |
是否启用 es6 转 es5 |
postcss |
Boolean |
上传代码时样式是否自动补全 |
minified |
Boolean |
上传代码时是否自动压缩 |
urlCheck |
Boolean |
是否检查安全域名和 TLS 版本 |
uglifyFileName |
Boolean |
是否进行代码保护 |
checkSiteMap |
Boolean |
是否打开SiteMap索引提示((默认为true) |
coverView |
Boolean |
是否使用工具渲染 CoverView |
enhance |
Boolean |
是否打开增强编译 |
babelSetting |
Object |
增强编译下Babel的配置项 |
disableUseStrict |
Boolean |
是否禁用增强编译的严格模式 |
uploadWithSourceMap |
Boolean |
上传时是否带上 sourcemap(默认为true) |
useCompilerPlugins |
String[] 或 false |
编译插件配置,目前支持编译插件有 typescript、less、sass |
babelSetting 中可以指定以下设置
字段名 |
类型 |
说明 |
---|---|---|
outputPath |
String |
Babel 辅助函数的输出目录,默认为 @babel/runtime |
ignore |
Array<String> |
配置需要跳过Babel编译(包括代码压缩)处理的文件或目录 |
注解
指定文件路径外,还可以指定目录,详见下面项目配置示例
scripts 中指定自定义预处理的命令
名字 |
说明 |
---|---|
beforeCompile |
编译前预处理命令 |
beforePreview |
预览前预处理命令 |
beforeUpload |
上传前预处理命令 |
packOptions¶
packOptions 用以配置项目在打包过程中的选项。打包是预览、上传时对项目进行的必须步骤。
目前可以指定 packOptions.ignore 字段,用以配置打包时对符合指定规则的文件或文件夹进行忽略,以跳过打包的过程,这些文件或文件夹将不会出现在预览或上传的结果内。
packOptions.ignore 为一对象数组,对象元素类型如下:
字段名 |
类型 |
说明 |
---|---|---|
value |
string |
路径1或取值 |
type |
string |
类型 |
其中,type 可以取的值为 folder、file、suffix、prefix、regexp2、glob2,分别对应文件夹、文件、后缀、前缀、正则表达式、Glob 规则。所有规则值都会自动忽略大小写。
注解
1: value 字段的值若表示文件或文件夹路径,以小程序目录 (miniprogramRoot) 为根目录。
注解
2: regexp、glob 仅 1.02.1809260 及以上版本工具支持。
示例配置如下。
{
"packOptions": {
"ignore": [{
"type": "file",
"value": "test/test.js"
}, {
"type": "folder",
"value": "test"
}, {
"type": "suffix",
"value": ".webp"
}, {
"type": "prefix",
"value": "test-"
}, {
"type": "glob",
"value": "test/**/*.js"
}, {
"type": "regexp",
"value": "\\.jsx$"
}]
}
}
debugOptions¶
debugOptions 用以配置在对项目代码进行调试时的选项。
目前可以指定 debugOptions.hidedInDevtools 字段,用以配置调试时于调试器 Sources 面板隐藏源代码的文件。
hidedInDevtools 的配置规则和 packOptions.ignore 是一致的。
当某个 js 文件符合此规则时,调试器 Sources 面板中此文件源代码正文内容将被隐藏,显示为:
// xxx.js has been hided by project.config.json
注:配置此规则后,可能需要关闭并重新打开项目才能看到效果。
项目配置示例:
{
"miniprogramRoot": "./src",
"qcloudRoot": "./svr",
"setting": {
"postcss": true,
"es6": true,
"minified": true,
"urlCheck": false,
"checkSiteMap": true,
"enhance": true,
"babelSetting": {
"ignore": [
"utils/something_not_to_process.js",
"miniprogram_npm/*",
"utils/already_handle/*"
]
}
},
"packOptions": {
"ignore": []
},
"debugOptions": {}
}
watchOptions¶
watchOptions 用以配置项目中可以被忽略展示和监听文件变化的文件匹配规则。 部分项目(如游戏项目)其项目文件可能成千上万,其中大部分可能是资源文件,并不是小程序和小游戏代码中关心展示的文件,这些文件在工具开发时可以不需要被开发者关注,因此工具可以增加一个配置去忽略指定的文件和目录,从而不对这些文件进行文件遍历获取和文件内容变更的监听(watch),从而提高开启工具的速度以及减少工具打开占用的内存。
目前可以指定 watchOptions.ignore 字段,用以配置工具时对符合指定规则的文件或文件夹进行忽略(忽略的文件将不展示在编辑器文件列表和对该文件进行监听),以避免展示和监听项目中不必要的文件内容(这些文件或文件夹不需要去关心文件变化)
watchOptions.ignore 为 glob pattern 字符串数组,具体支持如下:
. 匹配0到多个字符
? 匹配一个字符
[…] 匹配一个字符列表,类似正则表达式的字符列表
!(pattern|pattern|pattern) 反向匹配括号内的模式
?(pattern|pattern|pattern) 匹配0或1个括号内的模式
+(pattern|pattern|pattern) 匹配至少1个括号内的模式
*(pattern|pattern|pattern) 匹配0到多个括号内的模式
@(pattern|pat*|pat?erN) 精确匹配括号内的模式
** 匹配0到多个子目录,递归匹配子目录
示例配置如下。
如下所示
{
"description": "项目配置文件",
"watchOptions": {
"ignore": [
"utils/util.js",
"libs/**/**"
]
}
}
注解
1 : watchOptions.ignore 数组中的值若表示文件或文件夹路径,以项目根目录为基准目录。
注解
2 : 由于文件遍历和 watch 都是在项目启动时执行,因此如果修改了 watchOptions 需要重新打开项目 注 3: 该配置仅 1.02.1910220 及以上版本工具支持。