Javascript 为什么axios在npm运行prod时抛出错误,而在npm运行dev/watch时抛出错误?
我有一个Laravel项目,使用Vue.js和Axios与Laravel Mix构建CSS/js资产 在开发过程中,我一直在使用Javascript 为什么axios在npm运行prod时抛出错误,而在npm运行dev/watch时抛出错误?,javascript,npm,import,axios,Javascript,Npm,Import,Axios,我有一个Laravel项目,使用Vue.js和Axios与Laravel Mix构建CSS/js资产 在开发过程中,我一直在使用npm-run-dev和npm-run-watch构建没有问题的资产。我曾尝试使用npm run prod检查捆绑包大小,但一旦这样做,即使所有东西都能顺利编译,web应用程序中的所有Axios请求都会开始抛出错误 具体而言,我注意到以下几点: 如果我直接从节点模块导入Axios,如下所示: import axios from 'axios'; import axio
npm-run-dev
和npm-run-watch
构建没有问题的资产。我曾尝试使用npm run prod
检查捆绑包大小,但一旦这样做,即使所有东西都能顺利编译,web应用程序中的所有Axios请求都会开始抛出错误
具体而言,我注意到以下几点:
如果我直接从节点模块导入Axios,如下所示:
import axios from 'axios';
import axios from './lib/axios';
即使使用npm-run-prod
,但是,我创建了我自己的Axios库,我更喜欢使用它,因为它具有标题预设等。我可以导入我构建的Axios库,如下所示:
import axios from 'axios';
import axios from './lib/axios';
如果我结合npm run prod
执行此操作,然后尝试使用npm run dev/watch
可以正常工作的标准axios.get()
调用,则会出现以下错误:
TypeError:无法读取未定义的属性“get”
有趣的是,即使我实际上只在lib/axios.js
中执行以下操作,我仍然会在npm run prod
构建中遇到相同的错误:
import axios from 'axios';
export default axios;
为什么简单地从文件导入和导出Axios,然后从该文件导入Axios(
lib/Axios.js
)只会在产品版本上导致错误,而直接从node\u模块导入Axios不会导致错误?我很困惑。感谢您的帮助。更改您自己的库名是否有效,或者您是否尝试过将名称更改为其他而不是axios
?Cedric,感谢您的帮助。在你回应之前,我一直在四处搜索,我发现了这个半相关的页面:。一个家伙建议在webpack.mix.js
文件中使用version()
方法来解决这个问题,所以我想我也应该尝试同样的方法。我做到了,它神奇地起了作用。不知道为什么!我所能说的就是,如果您在mix
对象上的链式方法的末尾添加version()
,它就可以工作了。npm运行prod
或npm运行dev
没有问题。谢谢你的帮助。另一方面,我尝试删除version()
并重新构建,看看npm run prod
会发生什么。它仍然很好用!也许这只是一些奇怪的缓存问题?我当然不知道,但尽管如此,它还是起作用了。谢谢