export const presetPointIcons = presetIconName.map((name, idx) => ({
name: name,
label: presetIconLabel[idx],
// #ifdef APP-PLUS
src: `static/icons/map-point/${name}.png`
// #endif
// #ifdef MP-WEIXIN
src: `/static/icons/map-point/${name}.png`
// #endif
}))

- 发布:2023-03-14 15:26
- 更新:2023-03-15 08:55
- 阅读:407
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows11
手机系统: Android
手机系统版本号: Android 12
手机厂商: 小米
手机机型: 小米10
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: CLI
CLI版本号: 3.0.0-alpha-3070620230227001
示例代码:
操作步骤:
将上述代码运行至 android 和 微信开发者工具
将上述代码运行至 android 和 微信开发者工具
预期结果:
app:
const presetPointIcons = presetIconName.map((name, idx) => ({
name,
label: presetIconLabel[idx],
src: static/icons/map-point/${name}.png
}));
weixin:
const presetPointIcons = presetIconName.map((name, idx) => ({
name,
label: presetIconLabel[idx],
src: /static/icons/map-point/${name}.png
}));
app:
const presetPointIcons = presetIconName.map((name, idx) => ({
name,
label: presetIconLabel[idx],
src: static/icons/map-point/${name}.png
}));
weixin:
const presetPointIcons = presetIconName.map((name, idx) => ({
name,
label: presetIconLabel[idx],
src: /static/icons/map-point/${name}.png
}));
实际结果:
小程序正确,app 错误
小程序正确,app 错误

1***@qq.com (作者)
新建 test 页面结构如下:
<template>
<view></view>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({})
</script>
<script lang="renderjs" module="render" src="./render"></script>
新建 data.ts 内容如下:
export const data = {
// #ifdef APP-PLUS
message: '我是 app 平台'
// #endif
// #ifdef MP-WEIXIN
message: '我是小程序平台'
// #endif
}
新建 render.ts 内容如下:
import { data } from './data'
console.log(data.message)
-
首先renderjs 仅在 app vue 支持,其次不支持你这种引入方式,测试如下代码正常
<template>
<view>renderjs 条件编译</view>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({})
</script>
<script lang="renderjs" module="render">
export default {
data() {
return {
data: {
// #ifdef APP-PLUS
message1: '我是 app 平台',
// #endif
// #ifdef MP-WEIXIN
message2: '我是小程序平台'
// #endif
}
}
},
mounted() {
console.log('message1')
console.log(this.data.message1)
console.log('message2')
console.log(this.data.message2)
}
}
</script>2023-03-15 11:32
-
1***@qq.com (作者)
回复 DCloud_UNI_WZF: 原来只有写在 vue 文件中的条件编译才有效,引入的文件全都无法被条件编译。很多时候不希望 vue 组件过长,很多功能也被拆成了组合式 api 分散在其他 ts 文件中,这样条件编译不就局限性太大了吗。按照我的理解条件编译应该是所有被打包的文件中写上了指定的条件注释就应该被移除。
2023-03-15 14:13
1***@qq.com (作者)
复现的时候发现该问题仅在 renderjs 环境存在,demo 如下
2023-03-15 08:56