При использовании клиента Apollo в Vite я получаю сообщение об ошибке @apollo_client.js?v=dbeae2a1:78 Uncaught Error: Could not resolve "react" imported by "rehackt". Is it installed?
в консоли, хотя мне нужна библиотека без реакции (ванильный javascript)? Я импортировал ApolloClient из @apollo/client/core
моего main.js:
//src/main.js
import { createApp } from 'vue';
import App from './App.vue';
import { ApolloClient, gql, createHttpLink, InMemoryCache } from '@apollo/client/core';
import { DefaultApolloClient } from '@vue/apollo-composable';
import { createRouter, createWebHashHistory } from 'vue-router';
import Post from '@/components/Post.vue';
import Author from '@/components/Author.vue';
import PostsByTag from '@/components/PostsByTag.vue';
import AllPosts from '@/components/AllPosts.vue';
const httpLink = createHttpLink({
uri: 'https://localhost:8000/graphql',
});
const apolloClient = new ApolloClient({
link: httpLink,
cache: new InMemoryCache(),
});
const routes = [
{ path: '/author/:username', component: Author },
{ path: '/post/:slug', component: Post },
{ path: '/tag/:tag', component: PostsByTag },
{ path: '/', component: AllPosts },
];
const router = createRouter({
history: createWebHashHistory(),
routes: routes,
});
const app = createApp(App);
app.provide(DefaultApolloClient, apolloClient);
app.mount('#app');
@apollo/[email protected]
ну, apollo_client требует react
, даже если вы вообще не используете реакцию. Это зависимость от сверстников.
Добавление реакции не решило проблему
попробуйте удалить папку node_modules и выполните npm install
, чем npm cache clean
, чтобы убедиться в отсутствии кэшированных зависимостей. имейте в виду, что вы можете получить новые версии ваших зависимостей. если вы по какой-то причине хотите сохранить ту же старую версию
Есть два node_modules: один в корне проекта (VueProject), а другой в VueProject/frontend. Какой из них мне следует удалить?
Тот, что находится в корне вашего проекта ( vue0roject)
Просто импортируйте из @apollo/client/core, и все снова заработает, нет никакого смысла добавлять реакцию в проект Vue.
Вместо импорта от: @apollo/client используйте: @apollo/client/core
какую версию apollo_client вы используете