alitajs / alita

A React framework based on umi.
https://alitajs.com
MIT License
793 stars 85 forks source link

umi怎么用@alitajs/cordova #245

Closed chenliangngng closed 2 years ago

chenliangngng commented 2 years ago

umi3.5.18

参照https://alitajs.com/plugins/cordova

export default {
  plugins: [['@alitajs/cordova', options]],
};

.umirc里面,不知道options是什么,但是填不填options都会报plugins应为array,这里我最终填的plugins: ['@alitajs/cordova']

继续上面的,umi cordova --init会报“cordova 命令,appType 必须为 cordova,请修改配置 appType”,这里appType没有地方写,如果写在.umirc,会直接报错

xiaohuoni commented 2 years ago

直接用 alita 有什么问题?

xiaohuoni commented 2 years ago

可能需要定义一个 appType

 api.describe({
    key: 'appType',
    config: {
      schema(joi) {
        return joi.string();
      },
    },
  });
chenliangngng commented 2 years ago

直接用 alita 有什么问题?

已经有了一个比较大的umi项目了,现在要打包成app。想着是可以直接用alita的轮子,但是不清楚怎么弄成alita,考虑逐渐添加需要的包或者把所有umi代码拷贝到alita里面然后再修改

有没有什么好的建议?@xiaohuoni

chenliangngng commented 2 years ago

记录一下umi转alita:

  1. 依次compare目录,copy过去,除了package和config/config.ts,大部分其他文件包括src文件夹可以直接用原有umi
  2. config/config加上appType等属性,把带umi的字符串改成alita(比如openapi)
  3. 依次对比package,umi部分plugins是集成的,在alita这边要重新add,相关umi命令要改成alita
  4. alita的约定式路由只有一层,比如/src/pages/home/index.html/src/pages/home/demo.html,demo层是无效的,需要改成/src/pages/home/demo/index.html
  5. 把代码里面import {} from 'umi'改成alita
xiaohuoni commented 2 years ago

很抱歉,我上周在广东出差,没有登过 github 。你直接用 alita 是可以的。 其实 alita 里面也可以提供一个 umi-preset-alita2umi 的插件集合。 这样命令和目录不用做任何的更改。

上面提到的第四点 alita 中的约定路由只有一层,可以通过配置 complexRoute:true 来保留 umi 的路由规则。

tankpanv commented 2 years ago

很抱歉,我上周在广东出差,没有登过 github 。你直接用 alita 是可以的。 其实 alita 里面也可以提供一个 umi-preset-alita2umi 的插件集合。 这样命令和目录不用做任何的更改。

上面提到的第四点 alita 中的约定路由只有一层,可以通过配置 complexRoute:true 来保留 umi 的路由规则。

你好,问一下umi项目可以直接用@alitajs/cordova 打包成android apk吗。 我有个项目umi项目,想打包成apk 但是我尝试按照下面的文档进行操作。填plugins: [['@alitajs/cordova', options]],的时候我不知道如何填写option,文档没找到相关说明。遇到了与楼主同样的问题。 https://alitajs.com/plugins/cordova @alitajs/cordova

tankpanv commented 2 years ago

很抱歉,我上周在广东出差,没有登过 github 。你直接用 alita 是可以的。 其实 alita 里面也可以提供一个 umi-preset-alita2umi 的插件集合。 这样命令和目录不用做任何的更改。

上面提到的第四点 alita 中的约定路由只有一层,可以通过配置 complexRoute:true 来保留 umi 的路由规则。 你好,关于如何在现有的一个umi项目上使用 @alitajs/cordova 打包apk,可以详细说明一下·流程或者有更详细的文档吗。我根据这个文档尝试了,被卡主很久了;https://alitajs.com/plugins/cordova

tankpanv commented 2 years ago

记录一下umi转alita:

  1. 依次compare目录,copy过去,除了package和config/config.ts,大部分其他文件包括src文件夹可以直接用原有umi
  2. config/config加上appType等属性,把带umi的字符串改成alita(比如openapi)
  3. 依次对比package,umi部分plugins是集成的,在alita这边要重新add,相关umi命令要改成alita
  4. alita的约定式路由只有一层,比如/src/pages/home/index.html/src/pages/home/demo.html,demo层是无效的,需要改成/src/pages/home/demo/index.html
  5. 把代码里面import {} from 'umi'改成alita

你好,问一下,我在用umi 转cordova 的时候,还遇到了个问题,在我publicPath配置 '.' 了后,build之后的项目是部署在非根目录,点击跳转部署后跳转路由是空白的。这个不知道你这边有没有遇到过,有什么解决方案 image

chenliangngng commented 2 years ago

记录一下umi转alita:

  1. 依次compare目录,copy过去,除了package和config/config.ts,大部分其他文件包括src文件夹可以直接用原有umi
  2. config/config加上appType等属性,把带umi的字符串改成alita(比如openapi)
  3. 依次对比package,umi部分plugins是集成的,在alita这边要重新add,相关umi命令要改成alita
  4. alita的约定式路由只有一层,比如/src/pages/home/index.html/src/pages/home/demo.html,demo层是无效的,需要改成/src/pages/home/demo/index.html
  5. 把代码里面import {} from 'umi'改成alita

你好,问一下,我在用umi 转cordova 的时候,还遇到了个问题,在我publicPath配置 '.' 了后,build之后的项目是部署在非根目录,点击跳转部署后跳转路由是空白的。这个不知道你这边有没有遇到过,有什么解决方案 image

base,publicPath,可能有outputPath,当时config.js的这几个属性不同换值试吧

tankpanv commented 2 years ago

记录一下umi转alita:

  1. 依次compare目录,copy过去,除了package和config/config.ts,大部分其他文件包括src文件夹可以直接用原有umi
  2. config/config加上appType等属性,把带umi的字符串改成alita(比如openapi)
  3. 依次对比package,umi部分plugins是集成的,在alita这边要重新add,相关umi命令要改成alita
  4. alita的约定式路由只有一层,比如/src/pages/home/index.html/src/pages/home/demo.html,demo层是无效的,需要改成/src/pages/home/demo/index.html
  5. 把代码里面import {} from 'umi'改成alita

你好,问一下,我在用umi 转cordova 的时候,还遇到了个问题,在我publicPath配置 '.' 了后,build之后的项目是部署在非根目录,点击跳转部署后跳转路由是空白的。这个不知道你这边有没有遇到过,有什么解决方案 image

base,publicPath,可能有outputPath,当时config.js的这几个属性不同换值试吧

换成这个可以了,太感谢了

xiaohuoni commented 2 years ago

"@alitajs/cordova": "^2.8.37"

export default {
  plugins: ["@alitajs/cordova"],
  cordova: {
    packageId: "com.umi.demo",
    displayName: "umi",
  },
};

umi-cordova.zip