Closed easonjim closed 4 months ago
@flymyd 哎呀,这方法我试过了,发现不能成功,我分析出 platform 没有 h5 的,会不会是 h5 他走的打包流程不是这套 cli 了?
我看了下,不加参数的情况下默认应该就是h5
我看了下,不加参数的情况下默认应该就是h5
小程序平台相对特殊点。但CLI归根结底都是这套
@flymyd 不会吧,我再去验证一下,如果成了,我再提交 pr,增加多一个选择
@flymyd 不会吧,我再去验证一下,如果成了,我再提交 pr,增加多一个选择
我简单测试了一下,是可以的。获取最新版本的docker镜像后执行如下命令:
apt update && apt install vim -y
然后新建一个测试构建脚本:
const { exec } = require("child_process");
const { promisify } = require("util");
const path = require("path");
const os = require("os");
const execAsync = promisify(exec);
const test = async () => {
try {
const HBUILDER_DIR = '/opt/core';
const UNI_INPUT_DIR = path.join('/projects', 'iserv-app');
const VITE_ROOT_DIR = UNI_INPUT_DIR;
const UNI_HBUILDERX_PLUGINS = path.join(HBUILDER_DIR, 'plugins');
const UNI_CLI_CONTEXT = path.join(UNI_HBUILDERX_PLUGINS, 'uniapp-cli-vite');
const UNI_NPM_DIR = path.join(UNI_HBUILDERX_PLUGINS, 'npm');
const UNI_NODE_DIR = path.join(UNI_HBUILDERX_PLUGINS, 'node');
const NODE_ENV = 'production';
const NODE = 'node';
const UNI_CLI = path.join(UNI_CLI_CONTEXT, 'node_modules', '@dcloudio', 'vite-plugin-uni', 'bin', 'uni.js');
const PATH_ADDONS = process.env.PATH + `;${UNI_INPUT_DIR}/node_modules/.bin;`;
const childEnv = {
...process.env,
HBUILDER_DIR,
UNI_INPUT_DIR,
VITE_ROOT_DIR,
UNI_CLI_CONTEXT,
UNI_HBUILDERX_PLUGINS,
UNI_NPM_DIR,
UNI_NODE_DIR,
NODE_ENV,
NODE,
PATH: PATH_ADDONS,
};
process.chdir(UNI_CLI_CONTEXT);
const buildCommand = `"${NODE}" --max-old-space-size=2048 --no-warnings "${UNI_CLI}" build --platform h5 --outDir ${path.join(UNI_INPUT_DIR, 'wgt-dist')}`;
const { stdout, stderr } = await execAsync(buildCommand, { env: { ...childEnv } });
console.log('stdout:', stdout);
console.error('stderr:', stderr);
} catch (error) {
console.error('Error during build:', error);
}
}
test()
执行node test.js,可以看到构建结果。
@flymyd vue2的项目测试成功,打包 h5 和 mp-weixin 都没问题,我把 test2 的测试脚本提了一个 pr:https://github.com/hbuilderx-vanilla/docker/pull/2
用的最新的镜像,但是不成功,curl 后没有报错,就是暂停了1秒后,就没了。
@flymyd 大佬,如果uniapp项目,根目录没有index.html,用Hbuilderx 客户端可以打包成功,如何集成到这个docker镜像
请问可以支持 h5 的打包吗?