【发布时间】:2019-06-13 21:15:53
【问题描述】:
我正在参考以下教程创建一个 SPA 应用程序。
http://voerro.com/en/tutorials/r/building-spas-with-laravel-5-and-vuejs-2/1
直到昨天首页显示没有错误。 但是,今天我再次启动虚拟机并访问它, 出现以下 javascript 错误。
Uncaught ReferenceError: axios is not defined
at new Auth (app.js:53626)
at Module../resources/js/app.js (app.js:53554)
at __webpack_require__ (app.js:20)
at Object.0 (app.js:54214)
at __webpack_require__ (app.js:20)
at app.js:84
at app.js:87
我尝试查看 Git 的日志,但没有任何历史记录发生变化。
你知道如何解决这个问题吗?
class Auth {
constructor () {
this.token = window.localStorage.getItem('token');
let userData = window.localStorage.getItem('user');
this.user = userData ? JSON.parse(userData) : null;
if (this.token) {
axios.defaults.headers.common['Authorization'] = 'Bearer ' + this.token; // <-this is the error point
}
}
....
export default Auth;
app.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import Auth from './auth.js'
import Api from './api.js';
window.api = new Api();
window.auth = new Auth();
Vue.use(VueRouter);
bootstrap.js
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] =
'XMLHttpRequest';
【问题讨论】:
-
您可以通过简单地删除
node_modules和public/js目录,然后删除npm install和npm run dev来节省尝试调试的时间。 -
感谢您的回复。我尝试了 npm install & npm run dev 但没有成功。我也试过 npm install axios & npm run dev,但也没有用。
-
对不起,我帮不上忙。这很奇怪,它只是停止工作。仔细检查以确保您没有意外更改代码。此外,您始终可以尝试运行
vagrant reload --provision并重新尝试编译您的资产。此外,如果您要重新安装/重新编译,请从 VM 框内进行。 -
bootstrap.js 是否在加载 auth.js 之前运行?如果不是 axios 在使用前没有全局定义
-
@MattWohler 谢谢。我不知道为什么,但我用 vagrant reload --provision 解决了它。无论如何谢谢你!