Webpack 禁用AMD模块加载
我在使用带有babel loader的webpack的堆栈中使用了一个由swagger生成的api。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
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/,
},
],
}