Webpack 禁用AMD模块加载

Webpack 禁用AMD模块加载,webpack,swagger,babeljs,Webpack,Swagger,Babeljs,我在使用带有babel loader的webpack的堆栈中使用了一个由swagger生成的api。webpack尝试将文件作为AMD模块加载,但失败 ERROR in D:/project/src/javascripts/api/location/model/Location.js Module not found: Error: Cannot resolve module 'ApiClient' in D:\project\src\javascripts\api\location\model

我在使用带有babel loader的webpack的堆栈中使用了一个由swagger生成的api。webpack尝试将文件作为AMD模块加载,但失败

ERROR in D:/project/src/javascripts/api/location/model/Location.js
Module not found: Error: Cannot resolve module 'ApiClient' in D:\project\src\javascripts\api\location\model
 @ D:/project/src/javascripts/api/location/model/Location.js 22:4-34
当我在下面的swagger文件中删除amd部件时,它可以工作:

if (typeof define === 'function' && define.amd) {
 // AMD. Register as an anonymous module.
 define(['superagent'], factory);
}
我知道webpack loader imports支持参数define->false来解决此类问题。但我找不到解决bable loader的方法。
有人能提出解决方案吗?

在我的情况下,我在我的网页配置中添加了另一条规则。我将swagger生成的客户机作为一个单独的包导入,因此我只希望导入加载程序通过node_模块运行

请注意,下面的代码使用Webpack2语法。如果您使用的是旧版本的webpack,则需要对其进行调整


我不确定你的情况如何,但你可能需要做类似的事情。swagger生成的代码可能不需要通过babel运行

下面的方法有用吗?不适用于我:未找到多全局模块中的错误:错误:无法解析D:\…\src\javascripts@multi-global中的模块“babel,imports”
module: {
  rules: [
    {
      test: /\.js$/,
      use: 'babel-loader',
      exclude: /node_modules/,
    },
    {
      test: /\.js$/,
      use: 'imports-loader?define=>false',
      include: /node_modules/,
    },
  ],
}