添加@unocss/webpack依赖后会导致uni-app直接启动报错
添加@unocss/webpack依赖后会导致uni-app直接启动报错
操作步骤:
- 使用命令行创建项目
选择默认模板vue create -p dcloudio/uni-preset-vue my-project
- 添加@unocss/webpack依赖
pnpm add [@unocss](/user/unocss)/webpack -D
- 启动项目
pnpm serve
预期结果:
成功启动项目
实际结果:
启动报错,提示:
ERROR TypeError: Cannot convert undefined or null to object
TypeError: Cannot convert undefined or null to object
at Function.assign (<anonymous>)
at D:\project\uniapp\my-project\node_modules\.pnpm\@dcloudio+vue-cli-plugin-uni@2.0.2-4040520250103001_copy-webpack-plugin@13.0.0_postcss@8.5.3\node_modules\@dcloudio\vue-cli-plugin-uni\lib\chain-webpack.js:53:34
at Object.tap (D:\project\uniapp\my-project\node_modules\.pnpm\webpack-chain@6.5.1\node_modules\webpack-chain\src\Use.js:14:20)
at D:\project\uniapp\my-project\node_modules\.pnpm\@dcloudio+vue-cli-plugin-uni@2.0.2-4040520250103001_copy-webpack-plugin@13.0.0_postcss@8.5.3\node_modules\@dcloudio\vue-cli-plugin-uni\lib\chain-webpack.js:53:12
at Array.forEach (<anonymous>)
at D:\project\uniapp\my-project\node_modules\.pnpm\@dcloudio+vue-cli-plugin-uni@2.0.2-4040520250103001_copy-webpack-plugin@13.0.0_postcss@8.5.3\node_modules\@dcloudio\vue-cli-plugin-uni\lib\chain-webpack.js:22:17
at D:\project\uniapp\my-project\node_modules\.pnpm\@vue+cli-service@5.0.8_vue-template-compiler@2.6.14_vue@2.6.14\node_modules\@vue\cli-service\lib\Service.js:268:40
at Array.forEach (<anonymous>)
at Service.resolveChainableWebpackConfig (D:\project\uniapp\my-project\node_modules\.pnpm\@vue+cli-service@5.0.8_vue-template-compiler@2.6.14_vue@2.6.14\node_modules\@vue\cli-service\lib\Service.js:268:26)
at Service.resolveWebpackConfig (D:\project\uniapp\my-project\node_modules\.pnpm\@vue+cli-service@5.0.8_vue-template-compiler@2.6.14_vue@2.6.14\node_modules\@vue\cli-service\lib\Service.js:272:48)
at PluginAPI.resolveWebpackConfig (D:\project\uniapp\my-project\node_modules\.pnpm\@vue+cli-service@5.0.8_vue-template-compiler@2.6.14_vue@2.6.14\node_modules\@vue\cli-service\lib\PluginAPI.js:132:25)
at serve (D:\project\uniapp\my-project\node_modules\.pnpm\@dcloudio+vue-cli-plugin-uni@2.0.2-4040520250103001_copy-webpack-plugin@13.0.0_postcss@8.5.3\node_modules\@dcloudio\vue-cli-plugin-uni\commands\serve.js:51:31)
at Service.run (D:\project\uniapp\my-project\node_modules\.pnpm\@vue+cli-service@5.0.8_vue-template-compiler@2.6.14_vue@2.6.14\node_modules\@vue\cli-service\lib\Service.js:262:12)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
ELIFECYCLE Command failed with exit code 1.
bug描述:
uni-cli默认模板,一旦安装@unocss/webpack依赖后,就算不使用,也会导致启动报错失败。
更多关于添加@unocss/webpack依赖后会导致uni-app直接启动报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
复现了此问题,应该是 loader 里的配置有缺失,我做个兼容
更多关于添加@unocss/webpack依赖后会导致uni-app直接启动报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个uni-app与@unocss/webpack的兼容性问题。错误发生在webpack配置合并阶段,具体原因是uni-app的webpack配置与@unocss/webpack的配置存在冲突。
解决方法:
- 在vue.config.js中添加以下配置:
const UnoCSS = require('[@unocss](/user/unocss)/webpack').default
module.exports = {
configureWebpack: {
plugins: [
UnoCSS(),
],
},
chainWebpack(config) {
// 确保uni-app的loader配置优先
config.module
.rule('vue')
.use('vue-loader')
.tap(options => {
return options
})
}
}
- 或者使用uni-app官方推荐的unocss方案:
pnpm add unocss [@unocss](/user/unocss)/preset-uno [@unocss](/user/unocss)/preset-attributify -D
然后在main.js中引入:
import 'uno.css'