uni-app HBuilder 项目,导入unocss 云打包报错[postcss] Cannot read properties of undefined (reading 'get')

发布于 1周前 作者 itying888 来自 Uni-App

uni-app HBuilder 项目,导入unocss 云打包报错[postcss] Cannot read properties of undefined (reading ‘get’)

开发环境 版本号 项目创建方式
Windows wind10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:3.98

手机系统:Android

手机系统版本号:Android 12

手机厂商:一加

手机机型:8T

页面类型:vue

vue版本:vue3

打包方式:云端

示例代码:

//1 hbuilder 创建项目  
//2 pnpm init && pnpm i -D unocss  
//3 创建 vite.config.js  
import { defineConfig } from 'vite'  
import uni from '@dcloudio/vite-plugin-uni'  
import UnoCSS from 'unocss/vite'  
export default defineConfig({  
  plugins: [  
    uni(),  
    UnoCSS()  
  ],  
})  
//4 创建uno.config.js  
import {   
  defineConfig,  
  // app预设  
  presetWind,  
  presetAttributify   
} from "unocss";  
export default defineConfig({  
  presets: [  
    presetWind(),  
    presetAttributify(),  
  ],  
});  
//5 main.js添加uno.css 可以vue文件添加class测试是否生效class="bg-red" m="l-100rpx"  
import 'virtual:uno.css'  
//6 云打包 云证书 安卓  

操作步骤:

//1 hbuilder 创建项目  
//2 pnpm init && pnpm i -D unocss  
//3 创建 vite.config.js  
import { defineConfig } from 'vite'  
import uni from '@dcloudio/vite-plugin-uni'  
import UnoCSS from 'unocss/vite'  
export default defineConfig({  
  plugins: [  
    uni(),  
    UnoCSS()  
  ],  
})  
//4 创建uno.config.js  
import {   
  defineConfig,  
  // app预设  
  presetWind,  
  presetAttributify   
} from "unocss";  
export default defineConfig({  
  presets: [  
    presetWind(),  
    presetAttributify(),  
  ],  
});  
//5 main.js添加uno.css 可以vue文件添加class测试是否生效class="bg-red" m="l-100rpx"  
import 'virtual:uno.css'  
//6 云打包 云证书 安卓  

预期结果:

正常打包

实际结果:

[plugin:unocss:global:build:scan] [postcss] Cannot read properties of undefined (reading 'get')
[HBuilder] 23:22:45.804 Build failed with errors.

bug描述:

Hbuilder 项目,导入unocss 云打包报错[postcss] Cannot read properties of undefined (reading ‘get’)
cli项目一旦涉及云函数,市场插件就会变得混乱,不如Hbuilder 项目,理论上这样是没问题的,但是报错了,猜测依赖问题冲突,不知道哪一个很可能是eslint14到15 postcss也包过这个错


1 回复

在使用 uni-app 进行开发时,如果你在 HBuilder 项目中导入了 unocss 并进行云打包时遇到 [postcss] Cannot read properties of undefined (reading 'get') 的错误,通常是因为 unocsspostcss 之间的兼容性问题,或者配置不正确导致的。

以下是一些可能的解决方案:

1. 检查 unocsspostcss 的版本

确保你使用的 unocsspostcss 版本是兼容的。你可以尝试更新或降级这两个包的版本,看看是否能解决问题。

npm install unocss@latest postcss@latest

或者:

npm install unocss@<specific_version> postcss@<specific_version>

2. 检查 postcss.config.js 配置文件

确保你的 postcss.config.js 配置文件正确配置了 unocss 插件。

// postcss.config.js
module.exports = {
  plugins: {
    'unocss': {},
    // 其他插件
  }
}

3. 检查 unocss 配置

确保你的 unocss 配置文件(通常是 uno.config.tsunocss.config.ts)正确配置。

// uno.config.ts
import { defineConfig } from 'unocss'

export default defineConfig({
  // 配置项
})

4. 检查 HBuilder 的构建配置

HBuilder 中,检查项目的构建配置,确保没有冲突的配置项。你可以尝试在 manifest.jsonvue.config.js 中调整配置。

5. 清理缓存并重新安装依赖

有时候,清理缓存并重新安装依赖可以解决一些莫名其妙的问题。

rm -rf node_modules
rm package-lock.json
npm cache clean --force
npm install

6. 使用 unocss-webpack-plugin

如果你在 uni-app 中使用 webpack 进行构建,可以尝试使用 unocss-webpack-plugin 插件。

npm install unocss-webpack-plugin --save-dev

然后在 vue.config.js 中配置:

// vue.config.js
const UnoCSS = require('unocss-webpack-plugin').default

module.exports = {
  configureWebpack: {
    plugins: [
      new UnoCSS(),
    ],
  },
}

7. 检查 postcss 插件加载顺序

有时候,postcss 插件的加载顺序也会导致问题。确保 unocss 插件在其他 postcss 插件之前加载。

8. 查看错误日志

查看详细的错误日志,定位具体的错误位置。有时候错误日志会给出更具体的提示,帮助你找到问题的根源。

9. 确保 unocss 在项目中正确引入

确保你在项目的主入口文件(如 main.jsmain.ts)中正确引入了 unocss

// main.js
import 'uno.css'
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!