uni-app browesr NPM包后提示 ifdef错误
uni-app browesr NPM包后提示 ifdef错误
操作步骤:
如上面的描述
预期结果:
如上面的描述
实际结果:
如上面的描述
bug描述:
将npm包browesr后引入uniapp,但是因为npm的包中有ifdef(非自己写的,是其他包里自带的),uniapp遇到就会提示错误;
03:09:43.247 正在编译中...
03:09:44.383 INFO Starting development server...
03:09:57.042 条件编译失败,参考示例(注意 ifdef 与 endif 必须配对使用):
03:09:57.042 // #ifdef %PLATFORM%
03:09:57.046 js代码
03:09:57.047 // #endif
03:09:57.052 at node_modules/apis-core-nodejs/browser.js:1
请问这种情况怎么解决呢。。。。。

| 开发环境 | 版本号 | 项目创建方式 |
| --- | --- | --- |
| Windows | 10 | HBuilderX |
| | 3.1.8 | |
更多关于uni-app browesr NPM包后提示 ifdef错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app browesr NPM包后提示 ifdef错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是因为第三方NPM包中包含了uni-app条件编译语法(如#ifdef
),但该语法在普通JS文件中无法被正确处理导致的。建议采用以下解决方案:
-
使用webpack配置排除该文件
在vue.config.js
中配置chainWebpack
,将该文件排除在编译之外:configureWebpack: { module: { rules: [ { test: /browser\.js$/, loader: 'ignore-loader' } ] } }
-
修改包源码(临时方案)
在node_modules
中找到对应文件,将条件编译语法注释或删除:// 将 #ifdef 改为普通注释 /* #ifdef PLATFORM */ // 原有代码 /* #endif */