项目配置文件

可以在项目根目录使用 project.config.json 文件对项目进行配置。

字段名 类型 说明
miniprogramRoot Path String 指定小程序源码的目录(需为相对路径)
qcloudRoot Path String 指定腾讯云项目的目录(需为相对路径)
pluginRoot 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的配置项
uploadWithSourceMap Boolean 上传时是否带上 sourcemap(默认为true)

babelSetting 中可以指定以下设置

字段名 类型 说明
outputPath String Babel 辅助函数的输出目录,默认为 @babel/runtime
ignore Array<String> 配置需要跳过Babel编译(包括代码压缩)处理的文件或目录

注 1: 指定文件路径外,还可以指定目录,详见下面项目配置示例

scripts 中指定自定义预处理的命令

名字 说明
beforeCompile 编译前预处理命令
beforePreview 预览前预处理命令
beforeUpload 上传前预处理命令

packOptions

packOptions 用以配置项目在打包过程中的选项。打包是预览、上传时对项目进行的必须步骤。

目前可以指定 packOptions.ignore 字段,用以配置打包时对符合指定规则的文件或文件夹进行忽略,以跳过打包的过程,这些文件或文件夹将不会出现在预览或上传的结果内。

packOptions.ignore 为一对象数组,对象元素类型如下:

字段名 类型 说明
value string 路径1或取值
type string 类型

其中,type 可以取的值为 folderfilesuffixprefixregexp2glob2,分别对应文件夹、文件、后缀、前缀、正则表达式、Glob 规则。所有规则值都会自动忽略大小写。

注 1: value 字段的值若表示文件或文件夹路径,以小程序目录 (miniprogramRoot) 为根目录。

注 2: regexpglob 仅 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.ignoreglob 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 及以上版本工具支持。