Nuxt.js + Vue.js项目中在TS文件使用shuffle-seed包时出现seedrandom未定义错误的解决求助
Nuxt.js + Vue.js项目中在TS文件使用shuffle-seed包时出现seedrandom未定义错误的解决求助
我最近在做一个Nuxt.js(搭配Vue.js)的项目,想在TypeScript文件里用shuffle-seed这个工具包来做数组的随机打乱,这个包本身依赖seedrandom。我在utils/init.ts里写了下面的代码:
import { shuffle } from "shuffle-seed"; export const someArray : string[] = ["a","b","c"]; export const someOtherArray = shuffle(someArray, "seed");
但是当我执行npm run dev启动本地服务后,控制台直接抛出了错误,提示seedrandom is not defined,完整的错误日志如下:
shuffle-seed.js?v=9aad48de:710 Uncaught ReferenceError: seedrandom is not defined at Object.<anonymous> (shuffle-seed.js?v=9aad48de:710:39) at node_modules/shuffle-seed/shuffle-seed.js (shuffle-seed.js?v=9aad48de:769:8) at __require (chunk-BUSYA2B4.js?v=9aad48de:3:50) at node_modules/shuffle-seed/index.js (shuffle-seed.js?v=9aad48de:777:16) at __require (chunk-BUSYA2B4.js?v=9aad48de:3:50) at shuffle-seed.js?v=9aad48de:781:16 (anonymous) @ shuffle-seed.js?v=9aad48de:710 node_modules/shuffle-seed/shuffle-seed.js @ shuffle-seed.js?v=9aad48de:769 __require @ chunk-BUSYA2B4.js?v=9aad48de:3 node_modules/shuffle-seed/index.js @ shuffle-seed.js?v=9aad48de:777 __require @ chunk-BUSYA2B4.js?v=9aad48de:3 (anonymous) @ shuffle-seed.js?v=9aad48de:781
我已经确认所有依赖都正确安装了,package.json里的相关依赖配置如下:
"dependencies": { "@nuxt/image": "^1.10.0", "nuxt": "^3.17.1", "seedrandom": "^3.0.5", "shuffle-seed": "^1.1.6", "vue": "^3.5.13", "vue-router": "^4.5.1" }, "devDependencies": { "@types/seedrandom": "^3.0.8", "@types/shuffle-seed": "^1.1.3" }
执行npm install后也提示依赖都正常,TypeScript的类型文件也生成好了:
npm install postinstall nuxt prepare ✔ Types generated in .nuxt up to date, audited 854 packages in 3s
下面是我的项目配置文件内容,供参考:
nuxt.config.ts:
export default defineNuxtConfig({ devtools: { enabled: true }, ssr: false, modules: ['@nuxt/image'] })
tsconfig.json:
{ "extends": "./.nuxt/tsconfig.json" }
我自己也尝试了一些排查和解决方法,但都没效果:
- 一开始想过把
shuffle-seed或者seedrandom加到nuxt.config.ts的modules数组里,但发现这个配置是用来加Nuxt专属模块的,添加后报错找不到对应包,所以这个方向行不通 - 查资料后尝试在项目根目录添加了类型声明文件
shuffle-seed.config.d.ts,内容如下,但没有任何作用:declare module 'shuffle-seed' { const shuffleSeed: { shuffle<T>(arr: T[], seed: string): T[]; unshuffle<T>(arr: T[], seed: string): T[]; }; export default shuffleSeed; } - 一开始安装
shuffle-seed时,它没自动安装依赖的seedrandom,我手动补装了,但还是报错 - 试过多种导入方式(比如默认导入、整体导入),结果都一样
- 也卸载重装过
shuffle-seed包,问题依旧
我现在就想在utils/init.ts里正常用这个shuffle函数,现在完全搞不懂问题出在哪,甚至怀疑是不是这个包本身有问题?更担心以后用其他第三方依赖时还会遇到类似的坑,希望有大佬能帮忙分析一下问题根源,给个可行的解决办法,万分感谢!
内容来源于stack exchange
相关产品推荐
相关产品推荐

