uni-app 【报Bug】npm run dev:app-harmony希望能直接指向dedebug/app-harmony@1.3.7目录
uni-app 【报Bug】npm run dev:app-harmony希望能直接指向dedebug/app-harmony@1.3.7目录
项目信息 | 详细信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Mac |
PC开发环境操作系统版本号 | 14.5 |
手机系统 | HarmonyOS NEXT |
手机系统版本号 | HarmonyOS NEXT Developer Beta1 |
手机厂商 | 华为 |
手机机型 | mate60 pro |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 离线 |
项目创建方式 | CLI |
CLI版本号 | 5.0 |
操作步骤:
- npm run dev:app-harmony
预期结果:
- 运行到鸿蒙目录,而非dist/dev/app-harmony,或者通过软链接进行关联
实际结果:
- 运行到dist/dev/app-harmony非常容易造成误导,而且已配置签名的情况下需要重新签名,非常麻烦
bug描述:
在配置了app签名的情况下由于每次点击运行到鸿蒙都要重新签名,并且一部分开发电脑运行会很慢,希望直接通过npm run dev:app-harmony能配置编译运行目录或者直接运行到debug/app-harmony@1.3.7目录,而不是编译到dist/dev/app-harmony目录!
可以通过设置环境变量 UNI_OUTPUT_DIR 来处理,例如设置 H5 的 release 环境打包目录:
“scripts”: {
“build:h5:release”: “cross-env NODE_ENV=release UNI_PLATFORM=h5 UNI_OUTPUT_DIR=dist/release/h5 vue-cli-service uni-build --mode release”
}
代码会输出至当前项目的 dist/release/h5 目录下,鸿蒙同理。
harmony好像不生效,还是我写法不对? 比如dev运行调试: { … “scripts”: { … “dev:app-harmony”: “uni -p app-harmony UNI_OUTPUT_DIR=dist/debug/app-harmony@1.3.7/entry/src/main/resources/rawfile/apps/HBuilder/www”, } }
在处理uni-app项目时,如果希望npm run dev:app-harmony
命令直接指向特定的调试目录(如debug/app-harmony@1.3.7
),通常这意味着你需要配置项目的npm脚本以及可能的webpack或其他构建工具来确保使用正确的资源或依赖。
以下是一个可能的解决方案,假设你已经有一个uni-app项目,并且想要通过修改npm脚本来达到目的。这里不涉及直接修改uni-app的内部机制,而是通过配置来实现目标。
-
确保你的项目结构: 假设你的项目结构如下:
my-uni-app/ ├── debug/ │ └── app-harmony@1.3.7/ │ └── ... (相关资源) ├── node_modules/ ├── package.json └── ...
-
修改
package.json
: 在package.json
中,你可以定义一个自定义的npm脚本来设置环境变量或者直接修改构建配置,指向debug/app-harmony@1.3.7
目录。但是,由于uni-app的构建系统较为封闭,直接指定目录可能不现实,我们可以通过复制或链接的方式来实现。这里给出一个示例,使用
cp
命令(在Windows上可以使用xcopy
或相应的命令)将调试目录复制到某个构建过程中可访问的位置,然后修改webpack配置(如果适用)来使用该目录。不过,由于uni-app主要使用Vite或HBuilderX内置的构建系统,直接修改webpack配置可能不适用。因此,这里假设我们使用一种更通用的方法——环境变量和符号链接。"scripts": { "prepare-debug": "rm -rf temp-debug && ln -s ./debug/app-harmony@1.3.7 temp-debug", "dev:app-harmony": "npm run prepare-debug && uni-app-cli serve --platform app-harmony" }
在这个例子中,
prepare-debug
脚本创建了一个指向debug/app-harmony@1.3.7
的符号链接(在Windows上,你需要使用适当的命令创建符号链接)。然后dev:app-harmony
脚本先运行prepare-debug
,再启动uni-app的开发服务器。 -
使用符号链接: 注意,符号链接的使用依赖于操作系统,Linux/macOS使用
ln -s
,Windows上可以使用mklink /D
。 -
运行命令: 现在,你可以通过运行
npm run dev:app-harmony
来启动开发服务器,它应该会使用debug/app-harmony@1.3.7
目录中的资源(如果构建系统正确识别了符号链接)。
这种方法依赖于uni-app构建系统如何处理项目根目录下的资源。如果uni-app构建系统有特殊的要求或限制,可能需要进一步调整策略。