uni-app Vue3/Vite版下使用 pinia-plugin-persistedstate 为 app 开发环境添加 pinia 持久化能力时构建项目报错
uni-app Vue3/Vite版下使用 pinia-plugin-persistedstate 为 app 开发环境添加 pinia 持久化能力时构建项目报错
产品分类
uniapp/App
开发环境信息
项目 | 信息 |
---|---|
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | Windows11 23H2 |
手机系统 | Android |
手机系统版本号 | Android 14 |
手机厂商 | 小米 |
手机机型 | Redmi K50 Pro |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 离线 |
项目创建方式 | CLI |
CLI版本号 | @vue/cli 5.0.8 |
示例代码
import { createPinia } from "pinia";
import persisted from "pinia-plugin-persistedstate";
const pinia = createPinia();
pinia.use(persisted);
export default pinia;
export * from "./useUserInfoStore";
操作步骤
import { createPinia } from "pinia";
import persisted from "pinia-plugin-persistedstate";
const pinia = createPinia();
pinia.use(persisted);
export default pinia;
预期结果
import { createPinia } from "pinia";
import persisted from "pinia-plugin-persistedstate";
const pinia = createPinia();
pinia.use(persisted);
export default pinia;
实际结果
import { createPinia } from "pinia";
import persisted from "pinia-plugin-persistedstate";
const pinia = createPinia();
pinia.use(persisted);
export default pinia;
/**
* [vite]: Rollup failed to resolve import "destr" from "D:/DataBase/WorkSpace/templete Android_iOS/node_modules/pinia-plugin-
* persistedstate/dist/index.js".
* This is most likely unintended because it can break your application at runtime.
* If you do want to externalize this module explicitly add it to
* `build.rollupOptions.external`
*/
bug描述
使用 pinia-plugin-persistedstate 为 pinia 添加持久化能力时,运行 app 开发环境时报出以下构建错误。
[vite]: Rollup failed to resolve import “destr” from “D:/DataBase/WorkSpace/templete Android_iOS/node_modules/pinia-plugin-persistedstate/dist/index.js”.
This is most likely unintended because it can break your application at runtime.
If you do want to externalize this module explicitly add it to
build.rollupOptions.external
插件市场有修改过可以应用于uniapp的,你可以搜一下
好的,感谢解答,我去试试
貌似已解决。
报错情况是使用的 pnpm 来执行构建。
找到个相似问题:https://ask.dcloud.net.cn/question/202410,更换成 npm 来构建能够正常构建运行。
换成 yarn 之后是否正常了?javascript:;
回复 DCloud_UNI_OttoJi: 试了下,yarn 构建也是正常的
回复 亲爱的皂gaigai: ok
在uni-app Vue3/Vite版中使用pinia-plugin-persistedstate
为应用添加Pinia持久化能力时,如果构建项目报错,通常可能是由于配置问题或者依赖不兼容。以下是一个基本的配置示例,包括如何安装依赖、配置Pinia和pinia-plugin-persistedstate
,以及解决一些常见的构建错误。
步骤 1: 安装依赖
首先,确保你已经安装了pinia
和pinia-plugin-persistedstate
。如果还没有安装,可以使用以下命令进行安装:
npm install pinia pinia-plugin-persistedstate
步骤 2: 配置Pinia
在你的main.js
或main.ts
中,配置Pinia和pinia-plugin-persistedstate
插件:
import { createApp } from 'vue'
import App from './App.vue'
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
const app = createApp(App)
const pinia = createPinia()
// 使用插件
pinia.use(piniaPluginPersistedstate)
app.use(pinia)
app.mount('#app')
步骤 3: 创建Store并配置持久化
在你的stores
文件夹下创建一个新的store文件,例如user.js
:
import { defineStore } from 'pinia'
export const useUserStore = defineStore('user', {
state: () => ({
token: '',
userInfo: null,
}),
persist: true, // 启用持久化
})
步骤 4: 解决构建错误
如果构建项目时出现错误,可能是由于以下原因:
- 依赖不兼容:确保
pinia
和pinia-plugin-persistedstate
的版本兼容。 - 配置错误:检查
vite.config.js
或vue.config.js
(如果你使用的是Vue CLI)中是否有与Pinia或插件相关的特殊配置。 - 插件内部错误:查看
pinia-plugin-persistedstate
的GitHub仓库,看是否有其他人遇到类似问题或有修复的版本。
示例:Vite配置
通常,Vite的配置不需要为Pinia或pinia-plugin-persistedstate
做特别设置,但如果你遇到特定于Vite的错误,可能需要检查以下配置:
// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
// 其他配置...
})
确保你的配置文件中没有与Pinia或持久化插件冲突的设置。如果问题依旧存在,请提供具体的错误信息以便进一步分析。