我正在尝试在我的项目中导入axios。但是,出于某些原因,webpack / axios在尝试构建时给我带来了很大的麻烦。
GroupService.ts
import axios, { AxiosResponse, AxiosInstance } from 'axios';
webpack --display-error-details 错误
ERROR in ./~/axios/index.js
Module not found: Error: Can't resolve './lib/axios' in 'C:\dev\test-project\node_modules\axios'
resolve './lib/axios' in 'C:\dev\test-project\node_modules\axios'
using description file: C:\dev\test-project\node_modules\axios\package.json (relative path: .)
after using description file: C:\dev\test-project\node_modules\axios\package.json (relative path: .)
using description file: C:\dev\test-project\node_modules\axios\package.json (relative path: ./lib/axios)
as directory
C:\dev\test-project\node_modules\axios\lib\axios doesn't exist
no extension
C:\dev\test-project\node_modules\axios\lib\axios doesn't exist
.ts
C:\dev\test-project\node_modules\axios\lib\axios.ts doesn't exist
[C:\dev\test-project\node_modules\axios\lib\axios]
[C:\dev\test-project\node_modules\axios\lib\axios]
[C:\dev\test-project\node_modules\axios\lib\axios.ts]
@ ./~/axios/index.js 1:17-39
@ ./src/services/GroupService.ts
@ ./src/test-project.ts
这是我的webpack配置。
webpack.config.js
/** Plugin settings **/
var jsOutputFile = 'dist/testproject.min.js';
var cssOutputFile = 'dist/styles.css';
/** Webpack configuration **/
var webpack = require("webpack");
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var extractCSS = new ExtractTextPlugin(cssOutputFile);
module.exports = {
// application entry file
entry: "./src/test-project.ts",
// bundled application output file
output: {
path: __dirname,
filename: jsOutputFile
},
// Currently we need to add '.ts' to the resolve.extensions array.
resolve: {
extensions: ['.ts']
},
// Source maps support ('inline-source-map' also works)
devtool: 'source-map',
// Add the loader for .ts files.
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader'
},
{
test: /\.scss$/,
use: extractCSS.extract([
{
loader: 'css-loader'
},
{
loader: 'sass-loader'
}
])
}
]
},
plugins: [
new webpack.optimize.UglifyJsPlugin({
minimize: true,
sourceMap: true,
compress: {
warnings: true
}
}),
extractCSS
]
};
答案 0 :(得分:8)
Webpack找不到axios的入口点,因为尝试搜索typescript文件,但是没有这样的文件。您应该将.js添加到resolve扩展。更多信息请访问:https://webpack.js.org/configuration/resolve/#resolve-extensions
resolve: {
extensions: ['.ts', '.js']
},
答案 1 :(得分:2)
我遇到了同样的问题,下面的命令解决了我的问题。
npm install --save axios
答案 2 :(得分:0)
对我来说,问题是我在安装axios之后没有重新启动yarn start
服务-该库已正确安装在应用程序本地node_modules
目录中。
解决方案:使用ctrl-c
停止了纱线服务,然后使用yarn start
重新启动了纱线服务。
答案 3 :(得分:0)
请记得在安装 axios 之前运行 “npm 弹出”(停止服务器)。 这就是我解决这个问题的方法
npm eject
npm install --save axios
答案 4 :(得分:-1)
我遇到了同样的问题:
找不到模块:错误:无法解决' axios'在'
我意识到在项目的node_module文件夹中找不到axios文件夹。我已经使用过npm install --save axios
但在本地node-module文件夹中仍然找不到它。
这就是我解决这个问题的方法。我查找了我已经完成的其他一些反应项目,并将axios文件夹复制到该旧项目的node_module文件夹中。我后来将复制的axios文件夹粘贴到我当前项目的node_module文件夹中并且问题已清除。