2017-01-26 5 views
0

Я использую скрипт, созданный с помощью swagger, в стеке, в котором используется webpack с загрузчиком babel. webpack пытается загрузить файлы в виде модулей AMD и терпит неудачу.Отключить загрузку модуля 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 

Когда я удалить АМД-часть в файлах чванство (ниже) он работает:

if (typeof define === 'function' && define.amd) { 
// AMD. Register as an anonymous module. 
define(['superagent'], factory); 
} 

Я знаю, что WebPack погрузчик «импорт» поддерживает параметр define-> фальшивый решать такие вопросы , Но я не мог найти решение для bable-loader. Может ли кто-нибудь предложить решение?

+0

Возможно ли помощь? https://github.com/swagger-api/swagger-codegen/issues/3336#issuecomment-232126946 –

+0

не работает для меня :( ОШИБКА в мульти глобальном Модуль не найден: Ошибка: не удается разрешить модуль babel, импорт "в D: \ ... \ src \ javascripts @ multi global – Michael

ответ

1

В моем случае я добавил еще одно правило в конфигурацию своего webpack. Я импортирую клиента, созданного клиентом, как отдельный пакет, поэтому я только хотел, чтобы импорт-загрузчик работал через node_modules.

Обратите внимание, что в приведенном ниже коде используется синтаксис webpack 2. Вам нужно будет настроить его, если вы используете старую версию webpack.

module: { 
    rules: [ 
    { 
     test: /\.js$/, 
     use: 'babel-loader', 
     exclude: /node_modules/, 
    }, 
    { 
     test: /\.js$/, 
     use: 'imports-loader?define=>false', 
     include: /node_modules/, 
    }, 
    ], 
} 

Я не уверен, что ваша ситуация, но вам, возможно, придется сделать что-то подобное. Код, созданный с помощью swagger, может не понадобиться запускать babel.