找不到模块:错误:无法解析'./lib/axios'

时间:2017-05-09 18:19:02

标签: typescript webpack axios

我正在尝试在我的项目中导入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
  ]
};

5 个答案:

答案 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文件夹中并且问题已清除。