Как использовать webpack импорт aws-sdk

я нашел это вопросы в официальном, но, похоже, они отказались отвечать. Поэтому я могу только задавать вопросы о SO. Вот мой журнал ошибок и предупреждений:

WARNING in ./~/aws-sdk/lib/util.js
Critical dependencies:
40:30-45 the request of a dependency is an expression
43:11-53 the request of a dependency is an expression
 @ ./~/aws-sdk/lib/util.js 40:30-45 43:11-53

WARNING in ./~/aws-sdk/lib ^./.*$
Module not found: Error: Cannot resolve directory '.' in /Users/me/Documents/Sources/my-project/client/node_modules/aws-sdk/lib
 @ ./~/aws-sdk/lib ^./.*$

WARNING in ./~/aws-sdk/lib/api_loader.js
Critical dependencies:
13:15-59 the request of a dependency is an expression
104:12-46 the request of a dependency is an expression
108:21-58 the request of a dependency is an expression
114:18-52 the request of a dependency is an expression
 @ ./~/aws-sdk/lib/api_loader.js 13:15-59 104:12-46 108:21-58 114:18-52

WARNING in ./~/aws-sdk/lib/region_config.json
Module parse failed: /Users/me/Documents/Sources/my-project/client/node_modules/aws-sdk/lib/region_config.json Line 2: Unexpected token :
You may need an appropriate loader to handle this file type.
| {
|   "rules": {
|     "*/*": {
|       "endpoint": "{service}.{region}.amazonaws.com"
 @ ./~/aws-sdk/lib ^./.*$

ERROR in ./~/aws-sdk/lib/api_loader.js
Module not found: Error: Cannot resolve module 'fs' in /Users/me/Documents/Sources/my-project/client/node_modules/aws-sdk/lib
 @ ./~/aws-sdk/lib/api_loader.js 1:9-22

ERROR in ./~/aws-sdk/lib/services.js
Module not found: Error: Cannot resolve module 'fs' in /Users/me/Documents/Sources/my-project/client/node_modules/aws-sdk/lib
 @ ./~/aws-sdk/lib/services.js 1:9-22

есть три типа:

  1. не удается разрешить модуль 'fs'

мне нужно только установить fs можно решить эту проблему.

  1. нужен соответствующий загрузчик

Ну, это нужно установить json-loader, и установить его в webpack.config.js, но и может решить.

  1. критических зависимостей
  2. модуль не найден: ошибка: не удается разрешить каталога.'

Я webpack новичок.Так что я не знаю, как это решить. Кто-нибудь мне поможет? спасибо.

обновление:

  1. модуль не найден: ошибка: не удается разрешить каталога.'

Это мое ошибка, расширения конфигурационного файла отсутствуют .

6 ответов


использование метода noParse должно работать, если вы создаете пакет узла, так как это установка webpack не применять синтаксический анализ/загрузчики. Это не сработало для меня при создании umd форматированный выходной файл / библиотека.

чтобы создать библиотеку в формате umd, мне пришлось использовать загрузчики для Browserify aws-sdk и обрабатывать файлы json.

установить загрузчики:

npm install json-loader --save-dev

npm install transform-loader brfs --save-dev

Webpack Config:

module: {
  loaders: [
    { test: /aws-sdk/, loaders: ["transform?brfs"]},
    { test: /\.json$/, loaders: ['json']},
  ]
},
output: {
  library: 'LibraryName',
  libraryTarget: 'umd'
},
resolve: {
  extensions: ['', '.js']
}

заменить LibraryName С вами собственное пространство имен. В настоящее время библиотека будет использоваться через конструктор следующим образом:

var libObj = new LibraryName();

нашел этот блог это исправило это для меня.

по существу вам нужно импортировать встроенную версию библиотеки.

все заслуга автора. Вот код:

require('aws-sdk/dist/aws-sdk');
var AWS = window.AWS;

версия ES6:

import 'aws-sdk/dist/aws-sdk';
const AWS = window.AWS;

config:

module: {
  noParse: [
   /aws/
  ]
}

использование:


AWS SDK добавлена поддержка webpack начиная с версии 2.6.1, см. использование webpack и AWS SDK для JavaScript для создания и связывания приложения-Часть 1 сообщение в блоге, описывающее, как требовать aws-sdk на webpack пакета.


используйте npm install json-loader --save-dev добавьте следующий код в webpack.конфиг.js

  module: {
loaders: [{
  test: /\.js$/,
  loaders: ['babel'],

  exclude: /node_modules/,
},
{
      test: /.json$/,
      loaders: ['json']
    }]

}

просто импортируйте * как AWS из "aws-sdk"

обратите внимание, что мы указали загрузчик, чтобы сообщить webpack, как обрабатывать импорт файлов JSON, в этом случае с помощью JSON-loader, который мы установили ранее. По умолчанию webpack поддерживает только JavaScript, но использует загрузчики для добавления поддержки импорта других типов файлов. AWS SDK широко использует файлы JSON, поэтому без этой дополнительной конфигурации webpack выдаст ошибку при создании пакета.


обновление(2015-10-20):

aws-sdk исправить. я могу использовать его с НПМ.

спасибо, команда aws-sdk.