微信开发者工具-project.config.json配置详情

项目配置文件

  1. 项目根目录中的 project.config.json 和 project.private.config.json 文件可以对项目进行配置,
  2. project.private.config.json 中的相同设置优先级高于 project.config.json
  3. 可以在 project.config.json 文件中配置公共的配置,在 project.private.config.json 配置个人的配置,可以将 project.private.config.json 写到 .gitignore 避免版本管理的冲突。
  4. project.private.config.json 中有的字段,开发者工具内的设置修改会优先覆盖 project.private.config.json 的内容。如在 project.private.config.json 有 appid 字段,那么在 详情-基本信息 中修改了 appid,会写到 project.private.config.json 中,不会覆盖掉 project.config.json 的 appid 字段的内容
  5. 开发阶段相关的设置修改优先同步到 project.private.config.json 中,与最终编译产物有关的设置无法在 project.private.config.json 中生效

一级字段

字段名类型说明
miniprogramRootPath String指定小程序源码的目录(需为相对路径)
qcloudRootPath String指定腾讯云项目的目录(需为相对路径)
pluginRootPath String指定插件项目的目录(需为相对路径)
cloudbaseRootPath String云开发代码根目录(需为相对路径)
cloudfunctionRootPath String云函数代码根目录(需为相对路径)
cloudfunctionTemplateRootPath String云函数本地调试请求模板的根目录(需为相对路径)
cloudcontainerRootPath String云托管代码根目录(需为相对路径)
compileTypeString编译类型
settingObject项目设置
libVersionString基础库版本
appidString项目的 appid,只在新建项目时读取
projectnameString项目名字,只在新建项目时读取
packOptionsObject打包配置选项
debugOptionsObject调试配置选项
watchOptionsObject文件监听配置设置
scriptsObject自定义预处理
staticServerOptionsObject仅在小游戏项目中有效

compileType

编译类型作用于开发工具的以下设置

名字说明
miniprogram当前为普通小程序项目
plugin当前为小程序插件项目

setting

项目的编译设置,可以指定以下设置。部分设置无法在 project.private.config.json 中生效

以下字段可以开发者工具-详情-本地设置可以对应上

字段名类型允许私有设置[1]说明
es6Boolean是否启用 es6 转 es5[2]
enhanceBoolean是否打开增强编译[2]
postcssBoolean上传代码时样式是否自动补全
minifiedBoolean上传代码时是否自动压缩脚本文件
minifyWXSSBoolean上传代码时是否自动压缩样式文件
minifyWXMLBoolean上传代码时是否自动压缩 WXML 文件
uglifyFileNameBoolean上传时进行代码保护
ignoreUploadUnusedFilesBoolean上传时是否过滤无依赖文件
autoAuditsBoolean是否自动运行体验评分
urlCheckBoolean是否检查安全域名和 TLS 版本
compileHotReLoadBoolean是否开启文件保存后自动热重载
preloadBackgroundDataBoolean小程序加载时是否数据预拉取
lazyloadPlaceholderEnableBoolean是否启用懒注入占位组件调试[3]
useStaticServerBoolean仅在小游戏项目有效,是否开启静态资源服务器[4]

以下字段是开发者工具的隐式设置

字段名类型允许私有设置[1]说明
babelSettingObject增强编译下Babel的配置项
useCompilerPluginsString[] 或 false编译插件配置
disableUseStrictBoolean将 JS 编译成 ES5 时,是否禁用严格模式
uploadWithSourceMapBoolean上传时是否带上 sourcemap(默认为true)
localPluginsBoolean在小游戏插件项目中,是否启用 “以本地目录为插件资源来源”[5] 特性
packNpmManuallyBoolean是否手动配置构建 npm 的路径
packNpmRelationListArray仅 packNpmManually 为 true 时生效,详细参考构建 npm 文档
coverViewBoolean是否使用工具渲染 CoverView
ignoreDevUnusedFilesBoolean预览、真机调试和本地模拟器等开发阶段是否过滤无依赖文件(默认为true)
checkInvalidKeyBoolean是否展示 JSON 文件校验错误信息
showShadowRootInWxmlPanelBoolean是否开启调试器 WXML 面板展示 shadow-root
useIsolateContextBoolean是否开启小程序独立域调试特性[6]
useMultiFrameRuntimeBoolean是否开启模拟器预先载入小程序的某些资源[7]。此设定为 false 时会导致 useIsolateContext 失效
useApiHookBoolean是否启用 API Hook 功能[8]
useApiHostProcessBoolean是否在额外的进程处理一些小程序 API[9]
useLanDebugBoolean仅在小游戏有效,是否开启局域网调试服务器
enableEngineNativeBoolean是否在游戏引擎项目中开启支持引用 node 原生模块的底层加速特性
showES6CompileOptionBoolean是否在本地设置中展示传统的 ES6 转 ES5 开关(对应 es6),增强编译开关 (对应 enhance)

注 1: 开发阶段相关的设置修改优先同步到 project.private.config.json 中,与最终编译产物有关的设置无法在 project.private.config.json 中生效

注 2es6 和 enhance 需同时为 true/false,对应于 将 JS 编译成 ES5

注 3: (懒注入占位组件调试) 开启按需注入后在项目设置面板中会出现对应的勾选项,开启之后,按需注入的组件将会停止注入,页面停止在占位组件状态,便于调试自定义占位组件。

注 4: (静态资源服务器) 可以托管项目本地的静态资源,主要用于在预览时测试小游戏真机资源加载的效果。

注 5: (以本地目录为插件资源来源) 启用此特性后,工具将停止从线上获取小游戏插件包内容,并将检验本地相应目录的文件完整性。仅对小游戏插件项目有效。要以本地磁盘目录作为插件的资源来源,需要同时在小游戏插件项目的 game.json 中配置相关的属性。

注 6: (小程序独立域调试) 一种新的小程序内部代码的执行方式,仅影响工具侧的调试过程。未来将取代传统的执行方式并成为默认选择。仅在 2.11.1 及以上基础库有效。关闭此特性可能有助于规避一些调试中遇到的未知报错。

注 7: (预先载入小程序的某些资源) 开启此内部特性后,调试时小程序的重新载入可能会更快一些。此设定不影响真机和实际运行效果。

注 8: (API Hook 功能) 关闭此内部特性可能导致工具的某些调试功能(例如 mock)失效。此设定不影响真机运行效果。

注 9: (额外进程) 开启此内部特性后,部分 API 的调用会被移到单独的进程以减轻工具主进程的负担。此设定不影响真机运行效果。

useCompilerPlugins

编译插件配置,目前支持编译插件有 typescript、less、sass

{
  "setting": {
    "useCompilerPlugins": [
      "typescript",
      "less"
    ]
  }
}

表示项目支持直接使用 typescript 和 less

babelSetting

将 JS 编译为 ES5 时 Babel 的配置项,其中可以指定以下设置

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

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

libVersion

可以指定项目运行的基础库具体的版本号 也可以 project.config.json 的 libVersion 指定以下值

说明
latest最新的非灰度中的基础库
trial最新的基础库
widelyUsed使用比例最高的基础库

以上值在 project.private.config.json 文件中无效,因为手动在开发者工具-详情-本地设置中改变基础库的版本,会覆盖掉 project.private.config.json 的 libVersion 字段

scripts

指定自定义预处理的命令

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

packOptions

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

目前可以指定 packOptions.include 字段,用以配置打包时需要强制带上的文件(仅限后缀名白名单内)或者文件夹,匹配的这些文件或文件夹将一定会出现在预览或上传的结果内。(该字段的优先级高于 packOptions.ignore

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

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

字段名类型说明
valuestring路径1或取值
typestring类型

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

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

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

  • 10
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2020.04.02 F 修复 32 位系统无法编译小程序、提示重启耗时过久的问题 反馈详情 F 修复 使用 cli 打开 project.config.jsonprojectname 为中文的项目时会一直卡在初始化应用通信能力的问题 反馈详情 F 修复 ts 项目编译前命令无限执行的问题 反馈详情 F 修复 PC 端模拟器的 touchend 事件回调参数 changedTouches 为空的问题 反馈详情 2020.03.25 更新说明 A 新增 云开发控制台支持开通按量付费 A 新增 云开发支持数据库备份与回档(还原)详情 A 新增 支持小程序自动化多帐号调试 A 新增 显示灰度中的基础库以及基础库支持的客户端版本 详情 A 新增 下发测试基础库 详情 A 新增 支持模拟 API 的返回内容 详情 A 新增 支持同时重命名多个同名的文件 A 新增 真机调试出现异常时,可手动操作重试 A 新增 增加工具加载 loading 展示 A 新增 模拟器支持终止 A 新增 支持小游戏代码补全 U 优化 模拟器工具栏及状态栏界面 U 优化 云开发控制台监控图表展示 U 优化 模拟器添加边框 反馈详情 U 优化 更新命令行和 HTTP v2 版本 详情 F 修复 修改 cloudFunctionRoot 会出现文件找不到的问题 反馈详情 F 修复 不能正确打开已被删除文件夹的项目的问题 F 修复 点击菜单工具栏管理无反应的问题 F 修复 工具外修改项目配置 cli 上传不生效的问题 F 修复 工具预览/上传提示文件已经存在的问题 反馈详情 F 修复 调试器放大会导致 inspect 按钮样式异常的问题 F 修复 模拟器工具栏样式异常 F 修复 wx.addPhoneContact时顶部按钮显示错误的问题 反馈详情 F 修复 标题栏文字过长覆盖胶囊按钮的问题 F 修复 文件系统读取代码包内文件规则与真机不一致的问题 F 修复 关闭多帐号调试窗口 tabbar 内的 icon 无法加载的问题 反馈详情 F 修复 预览上传错误提示无效的 json 文件 反馈详情 F 修复 使用非等宽字体时光标可能错位的问题 F 修复 某些项目可能出现 wxml not found 的问题 F 修复 真机调试 Appdata 和 WXML 面板可能显示空白的问题 F 修复 弹出模拟器时 getMenuButtonBoundingClient 调用结果为空的问题 A 新增 支持小程序自动化截图功能 A 新增 编辑器面包屑导航条支持自定义快捷导航 A 新增 模拟小程序进程销毁重启 A 新增 编辑器行内错误和警告提示 A 新增 Mac 和 Windows 微信的模拟器类型 U 优化 1.02.1912261 的安装包结构 U 优化 MacOS 版关闭项目窗口时,显示项目列表窗口 U 优化 插件开发模式下 miniprogramRoot 下 app.json 中插件 provider 与项目 appid 一致时,version 必须为 "dev" F 修复 1.02.1912261 引入的多帐号调试 tabBar 图标无法加载的问题 F 修复 1.02.1912261 引入的 jsserverRoot 目录右键菜单缺失部分选项的问题 F 修复 公众号网页调试中,Base64 图片无法通过调试器打开的问题 反馈详情 F 修复 cli 调用自动预览无法使用自定义编辑条件的问题 F 修复 Windows 版无法使用录音功能的问题 F 修复 插件开发模式下,插件页面配置不生效的问题 F 修复 小游戏开放数据域使用增强编译报错的问题 F 修复 Windows 版某些情况下无法显示项目窗口的问题 F 修复 切换 cloudfunctionsRoot 无法同步云函数的问题 反馈详情 F 修复 Wxml 面板丢失 text 标签子节点的问题 F 修复 上传时文件体积大小提示错误问题 反馈详情 F 修复 使用非等宽字体时光标可能错位的问题 F 修复 文件系统 api 读取代码包内文件规则与真机不一致的问题 A 新增 编辑器全局替换 A 新增 编辑器分栏 A 新增 编辑器文件多选操作和拖动到文件夹 A 新增 编辑器多选操作和拖动到文件夹 A 新增 编辑器代码大纲 A 新增 编辑器文件对比 A 新增 选取 android 设备上的 profile 文件进行分析 详情 A 新增 WXML 面板支持自定义组件数据查看与实时修改 A 新增 WXML 面板支持使用键盘 (上下左右) navigate the DOM tree A 新增 WXML 面板
project.config.json 文件是一个用于配置项目的 JSON 文件,它通常用于指定项目的相关信息和依赖项。如果该文件内容错误,可能会导致项目无法正常运行或者出现其他问题。 具体而言,project.config.json 文件通常包含以下内容: 1. appid:项目的 AppID,用于标识该项目在开发者平台的唯一标识符。 2. projectname:项目的名称。 3. description:项目的描述信息。 4. setting:项目的设置,包括编译配置、运行配置等。 5. compileType:编译类型,可以是 miniprogram(小程序)、plugin(插件)等。 6. miniprogramRoot:小程序根目录。 7. cloudfunctionRoot:云函数根目录。 8. appid:小程序的 AppID。 9. condition:条件编译配置。 10. plugins:插件配置。 11. packOptions:打包配置。 12. miniprogramExt:小程序扩展配置。 如果 project.config.json 文件内容错误,可能会导致项目无法正常编译、运行或者部署。常见的错误包括格式错误、缺少必要字段、字段值错误等。 如果你遇到了 project.config.json 文件内容错误的问题,可以尝试以下解决方法: 1. 检查文件格式是否正确,确保是一个合法的 JSON 文件。 2. 检查字段是否完整且正确,比如检查是否缺少了必要字段或者字段值是否符合要求。 3. 可以尝试重新生成一个新的 project.config.json 文件,或者从备份中恢复一个正确的文件。 4. 如果是使用开发工具进行开发,可以尝试清除缓存并重新编译项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值