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

Я нашел это issues у чиновника, но похоже, что они отказались отвечать. Поэтому я могу только задавать вопросы о 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

Существует три типа:

  • Невозможно разрешить модуль 'fs'

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

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

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

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

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

UPDATE:

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

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

Ответ 1

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

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

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

npm install json-loader --save-dev

npm install transform-loader brfs --save-dev

Конфигурация Webpack:

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();

Ответ 2

Я нашел этот пост в блоге, который исправил его для меня.

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

Все кредиты принадлежат автору. Вот код:

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

Версия ES6:

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

Ответ 3

конфигурации:

module: {
  noParse: [
   /aws/
  ]
}

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

window.AWS для ссылки на глобальный объект AWS.

Ответ 5

использовать npm install json-loader --save-dev добавьте следующий код в webpack.config.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 будет генерировать ошибку при создании пакета.

Ответ 6

Update (2015-10-20):

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

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