imgcook 开发指南

优质
小牛编辑
140浏览
2023-12-01

1 概述

2 安装和使用

2.1 安装

npm install -g @imgcook/cli
imgcook config edit # 配置imgcook。具体配置见下面

2.2 配置

imgcook参考配置

{
  "accessId": "iiqzaVoPUX562XXG",
  "dslId": "259",
  "generator": [],
  "plugin": [
    "@imgcook/hm-replace-component",
    "@imgcook/plugin-images",
    "@imgcook/plugin-generate"
  ],
  "uploadUrl": ""
}

2.3 设置生成的尺寸

2.4.1 手机端应用生成

默认情况,uniapp和taro生成的代码都是为手机端服务的。手机端生成代码时,遵循以下规则生成:

  • 同一个项目中,所有待生成元素的宽度相同。通常手机端的设计稿,artboard的宽度为375px或750px,那么上传到imgcook里的所有的设计元素宽度都保持375px或750px。
  • 生成出来的代码是移动端屏幕自适应的。uniapp和taro的自适应机制有所不同。
    • uniapp:官方推荐采用rpx单位实现移动端的自适应。毫末生成的移动端的uniapp的代码,以rpx为单位实现自适应。
    • Taro:官方推荐采用px或者百分比%。Taro在编译为H5时会将px的尺寸转换为rem,编译小程序时会将px的尺寸转换为rpx。由于毫末生成的style代码为js文件,Taro编译器无法自动转换px像素。为了解决这个问题,毫末采用了Taro推荐的Taro.pxTransform()函数来控制自适应。

2.4.2 Pad & Web端应用生成

有时候需要生成pad端甚至桌面端的应用,也就存在需要生成局部视觉代码的情况(无法跟手机端应用一样,强制要求所有待生成元素的宽度保持一致)。如果不加任何配置项,那么生成出来的代码就不存在自适应性(布局混乱)。

为了解决这个问题,在imgcook的web管理端中,对Page元素增加了两个属性以实现pad或桌面应用的局部代码屏幕自适应。

export default {
  designWidth: 1920,    // 设计稿宽度
  responsive: "vw"      // 配置responsive时,css自适应采用vw单位。responsive不配置的情况(只配置designWidth)下,uniapp默认采用rpx控制自适应(在pad下体验较好),Taro默认采用Taro.pxTransform()函数来控制自适应。
}

配置截图如下:

2.4 组件替换

由于imgcook生成的所有的元素都为 Div/Text/Image,对于表单元素及复杂组件还没有较好的支持。毫末内部结合xmind2code配置的组件,实现了imgcook的组件替换。

毫末imgcook的组件替换,替换的是xmind2code->ui config文件中的组件。目前支持非容器型组件(input/button等)。暂时不支持容器型组件(例如Tab等)替换。

组件替换需要使用到插件 @imgcook/hm-replace-component. 插件安装

imgcook install @imgcook/hm-replace-component@0.0.9

imgcook的schema中,主要有三类UI元素:

  • Div
  • Text
  • Image

原则上,imgcook中的以上三类元素,可以替换为毫末配置的任意组件。建议的替换如下:

  • Text: imgcook自动替换。无需替换。
  • Image: imgcook自动替换。无需替换。
  • Div: 可以配置替换为其他组件

替换过程:

  • 1.在imgcook的web界面上,配置Div的额外属性:hm-component=\
export default {
  'hm-component': 'van-button'
}

配置截图如下:

参考