项目配置文件

版本: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 及以上版本工具支持。