uni-app使用cli方式编译生成本地打包App资源如何跳过nvue不支持的样式的ERROR
uni-app使用cli方式编译生成本地打包App资源如何跳过nvue不支持的样式的ERROR 我按照官网 《CLI 原生App-本地打包(生成本地打包App资源) 》 CLI 原生App-本地打包(生成本地打包App资源) 打包资源。
打包命令为:cli publish --platform APP --type appResource --project navi-android
在遇到nuve不支持的样式时会抛出ERROR并终止编译,但是在Hbuilderx的 发行->App-Android/IOS-本地打包->生成本地打包资源 虽然抛出了ERROR,但是却没有终止编译,想请问一下这里是否有指令可以忽略这个ERROR,继续编译。
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
CLI | 未知 | 使用命令行工具 |
```plaintext
cli方式的日志,编译到有ERROR的nvue文件就会终止编译:
11:45:21.802 正在编译中...
11:45:44.702 nvue中不支持如下css。如全局或公共样式受影响,建议将告警样式写在ifndef APP-PLUS-NVUE的条件编译中,详情如下:
11:45:44.708 ERROR: Selector `uni-modal .uni-modal` is not supported. Weex only support classname selector at pages/together-fun/play/play.nvue:21
Hbuilderx的方式日志,虽然会打印ERROR,但是还是会继续编译完成:
[HBuilder] 13:12:57.833 4.36
[HBuilder] 13:12:58.493 正在编译中...
[HBuilder] 13:13:27.281 nvue中不支持如下css。如全局或公共样式受影响,建议将告警样式写在ifndef APP-PLUS-NVUE的条件编译中,详情如下:
[HBuilder] 13:13:27.282 ERROR: Selector `uni-modal .uni-modal` is not supported. Weex only support classname selector at App.vue:21
[HBuilder] 13:13:27.282 ERROR: Selector `uni-modal .uni-modal .uni-modal__hd .uni-modal__title` is not supported. Weex only support classname selector at App.vue:24
[HBuilder] 13:13:27.282 ERROR: Selector `uni-modal .uni-modal .uni-modal__ft` is not supported. Weex only support classname selector at App.vue:28
[HBuilder] 13:13:27.282 ERROR: Selector `uni-modal .uni-modal .uni-modal__bd` is not supported. Weex only support classname selector at App.vue:32
[HBuilder] 13:13:27.283 ERROR: Selector `/deep/ .u-button--primary` is not supported. Weex only support classname selector at App.vue:36
[HBuilder] 13:13:27.283 ERROR: property value `none` is not valid for `border-color` at App.vue:38
[HBuilder] 13:13:27.283 ERROR: Selector `/deep/.u-tabs__wrapper__nav__line` is not supported. Weex only support classname selector at App.vue:40
[HBuilder] 13:13:27.283 ERROR: Selector `:export` is not supported. Weex only support classname selector at App.vue:44
[HBuilder] 13:13:27.284 WARNING: `uni-color-primary` is not a standard property name (may not be supported) at App.vue:45
在uni-app中使用CLI方式编译生成本地打包App资源时,如果希望在编译过程中跳过nvue不支持的样式错误,可以通过配置Webpack或其他构建工具来忽略这些特定错误。虽然uni-app本身并没有直接提供一个开关来忽略这些错误,但你可以通过修改构建脚本来实现这一目标。
以下是一个示例,展示如何通过修改Webpack配置来忽略nvue不支持的样式错误。请注意,这只是一个概念性的示例,具体实现可能需要根据你的项目结构和uni-app版本进行调整。
首先,确保你的项目根目录下有一个vue.config.js
文件(如果没有,请创建一个)。在这个文件中,你可以配置Webpack。
// vue.config.js
const path = require('path');
module.exports = {
configureWebpack: config => {
// 添加一个自定义的Webpack插件来处理错误
config.plugins.push(
new (require('webpack/lib/Compiler').class)({
apply(compiler) {
compiler.hooks.done.tap('IgnoreNvueStyleErrors', stats => {
// 遍历编译过程中的错误和警告
stats.compilation.errors.forEach(error => {
// 检查错误消息中是否包含nvue不支持的样式相关关键词
if (error.message.includes('nvue不支持的样式')) {
console.warn('Ignored error:', error.message);
// 从错误列表中移除该错误,这样它就不会影响到构建结果
const index = stats.compilation.errors.indexOf(error);
if (index > -1) {
stats.compilation.errors.splice(index, 1);
}
}
});
});
}
})
);
},
chainWebpack: config => {
// 你可以在这里进一步链式配置Webpack,比如添加loader或修改规则
// 但对于忽略错误来说,上面的configureWebpack已经足够
}
};
注意:上面的代码示例使用了Webpack的Compiler
钩子来拦截和处理编译完成后的错误。然而,由于uni-app内部可能使用了自定义的Webpack配置或者封装,直接修改Webpack配置可能不起作用,或者需要更复杂的调整。此外,require('webpack/lib/Compiler').class
这部分代码是一个假设性的示例,实际上你需要找到一个合适的方法来创建一个Webpack插件。
在实际操作中,你可能需要查阅uni-app的官方文档或社区论坛,了解是否有更直接或推荐的方法来处理这类问题。同时,考虑到代码的可维护性和未来兼容性,建议在修改构建配置时谨慎行事,并时刻关注uni-app的更新和变更。