我的Vue NPM导入只能在src文件夹中而不是项目根目录中找到模块



在我的应用程序根目录中,我有/node_modules/和/src/

我已经运行了npm安装程序,并使用npm install-axios安装了程序包——为我的所有依赖项保存etc我确实看到它们被添加到node_modules目录中,但是我的vue项目没有编译,并出现以下错误:

Failed to compile.
./src/main.js
Module not found: Error: Can't resolve 'axios' in '/app/src'

如果我在/src/目录中手动创建一个node_modules文件夹,并放置axios和其他依赖项,它就可以工作了。。但从我所读到的内容来看,我不应该以这种方式处理我的节点模块。我似乎需要让我的依赖关系指向不同的路径?

奇怪的是,我从"Vue"导入Vue,从"导入App/App.vue的工作很好,基本上是之后所有无法编译的东西。。

我的main.js:

import Vue from 'vue'
import App from './App.vue'
import axios from 'axios'
import VueAxios from 'vue-axios'
import firebase from 'firebase'
import "firebase/auth";
import "firebase/analytics";
import "firebase/firestore";
import moment from 'moment'
Vue.use(VueAxios, axios)
Vue.config.productionTip = false
new Vue({
render: h => h(App),
firebase: firebase,
}).$mount('#app')

我还尝试删除所有节点模块,清除NPM缓存并重新安装NPM依赖项,但都无济于事。

不要使用use函数全局添加您的axios实例,请尝试这样添加:

import Vue from 'vue'
import App from './App.vue'
import axios from 'axios'
import VueAxios from 'vue-axios'
import firebase from 'firebase'
import "firebase/auth";
import "firebase/analytics";
import "firebase/firestore";
import moment from 'moment'
Vue.config.productionTip = false
Vue.prototype.$axios = Axios; //<---- like that
new Vue({
render: h => h(App),
firebase: firebase,
}).$mount('#app')

之后尝试再次编译。然后,您就可以使用this.$axios在每个组件上调用axios实例

最新更新