:wxdt:`项目配置文件 ` ============================================== 版本:|release| 更新:|today| 可以在项目根目录使用 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 | 配置需要跳过Babel编译(包括代码压缩)处理的文件或目录 | +------------+---------------+-----------------------------------------------------+ .. note:: 指定文件路径外,还可以指定目录,详见下面项目配置示例 scripts 中指定自定义预处理的命令 +---------------+------------------+ | 名字 | 说明 | +===============+==================+ | beforeCompile | 编译前预处理命令 | +---------------+------------------+ | beforePreview | 预览前预处理命令 | +---------------+------------------+ | beforeUpload | 上传前预处理命令 | +---------------+------------------+ packOptions ------------- packOptions 用以配置项目在打包过程中的选项。打包是预览、上传时对项目进行的必须步骤。 目前可以指定 packOptions.ignore 字段,用以配置打包时对符合指定规则的文件或文件夹进行忽略,以跳过打包的过程,这些文件或文件夹将不会出现在预览或上传的结果内。 packOptions.ignore 为一对象数组,对象元素类型如下: +--------+--------+-------------+ | 字段名 | 类型 | 说明 | +========+========+=============+ | value | string | 路径1或取值 | +--------+--------+-------------+ | type | string | 类型 | +--------+--------+-------------+ 其中,type 可以取的值为 folder、file、suffix、prefix、regexp2、glob2,分别对应文件夹、文件、后缀、前缀、正则表达式、Glob 规则。所有规则值都会自动忽略大小写。 .. note:: 1: value 字段的值若表示文件或文件夹路径,以小程序目录 (miniprogramRoot) 为根目录。 .. note:: 2: regexp、glob 仅 1.02.1809260 及以上版本工具支持。 示例配置如下。 .. code:: json { "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$" }] } } .. note::: 这部分设置的更改可能需要重新打开项目才能生效。 debugOptions --------------------------- debugOptions 用以配置在对项目代码进行调试时的选项。 目前可以指定 debugOptions.hidedInDevtools 字段,用以配置调试时于调试器 Sources 面板隐藏源代码的文件。 hidedInDevtools 的配置规则和 packOptions.ignore 是一致的。 当某个 js 文件符合此规则时,调试器 Sources 面板中此文件源代码正文内容将被隐藏,显示为: .. code:: // xxx.js has been hided by project.config.json 注:配置此规则后,可能需要关闭并重新打开项目才能看到效果。 项目配置示例: .. code:: 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到多个子目录,递归匹配子目录 示例配置如下。 如下所示 .. code:: json { "description": "项目配置文件", "watchOptions": { "ignore": [ "utils/util.js", "libs/**/**" ] } } .. note:: 1 : watchOptions.ignore 数组中的值若表示文件或文件夹路径,以项目根目录为基准目录。 .. note:: 2 : 由于文件遍历和 watch 都是在项目启动时执行,因此如果修改了 watchOptions 需要重新打开项目 注 3: 该配置仅 1.02.1910220 及以上版本工具支持。