z***@foxmail.com
z***@foxmail.com
  • 发布:2022-03-11 14:56
  • 更新:2022-11-29 21:18
  • 阅读:1794

自定义输出目录无效 UNI_OUTPUT_DIR

分类:uni-app

我在设置自定义编译方式的时候,设置了 UNI_OUTPUT_DIR 这个变量的。但是编译成功后输出的文件目录还是原来的,

{  
    "uni-app": {  
        "scripts": {  
            "hcms-h5": {  
                "title": "Hcms-H5应用",  
                "browser": "chrome",  
                "env": {  
                    "UNI_PLATFORM": "h5",  
                    "UNI_OUTPUT_DIR": "dist/hcms-h5"  
                }  
            }  
        }  
    }  
}

请问还有什么其他方式修改编译的输出目录吗?

2022-03-11 14:56 负责人:无 分享
已邀请:

最佳回复

BoredApe

BoredApe - 有问题就会有答案。

if (process.env.UNI_SCRIPT === 'h5-weixin') {    
    process.env.UNI_OUTPUT_DIR = process.env.UNI_OUTPUT_DIR.replace('/h5', 'dist/hcms-h5')    
}    
module.exports = {}
l***@126.com

l***@126.com - 务实前行

确实无效

s***@qq.com

s***@qq.com

请问需要怎么设置

岚枫

岚枫

看了下vite下的源码,构建outDir是在uni执行命令时候构建的,这个时候就没加载配置文件,只能在执行nui之前去设置环境变量

const hasOutputDir = !!process.env.UNI_OUTPUT_DIR;  
    if (hasOutputDir) {  
        ;  
        options.outDir = process.env.UNI_OUTPUT_DIR;  
    }  
    else {  
        if (!options.outDir) {  
            ;  
            options.outDir = path_1.default.resolve(process.cwd(), 'dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', (0, uni_cli_shared_1.getPlatformDir)());  
        }  
        process.env.UNI_OUTPUT_DIR = options.outDir;  
    }

目前来说,解决方案就是在执行uni命令之前去设置
···
"dev:mp-weixin:scattered": "cross-env UNI_OUTPUT_DIR=dist/dev/mp-weixin-1 uni -p mp-weixin --mode development-scattered",
···
或者在执行之前执行一个node 文件 在文件中更改环境变量就是有效的,就是这种蛋疼方式,无法跟vite环境变量去联动

要回复问题请先登录注册