Включите XMLHttpRequest перед передачей машинописного кода с помощью веб-пакета - PullRequest
0 голосов
/ 05 июня 2019

В настоящее время я занимаюсь разработкой лямбда-функции с использованием Typescript и переносом в Javascript с использованием webpack и bable-loader.

Транспиляция работает должным образом, и я получаю файл Index.js, который могу загрузить в Lambda. Однако, когда я запускаю функцию Lambda, я получаю следующую ошибку:

NetworkingError: XMLHttpRequest is not defined

Я прочитал, что узел не имеет всех встроенных функций браузера Javascript, поэтому мне нужно добавить этот пакет => https://www.npmjs.com/package/xmlhttprequest

И я добавляю его в свой проект следующим образом:

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;

Но у меня все та же проблема. Я почти уверен, что это потому, что XMLHttpRequest вызывается из зависимостей, которые добавляются в файл Index.js. Поэтому я думаю, что необходимо включить модуль XMLHttpRequest до начала транспиляции.

это мой webpack.config.js

const path = require('path');

module.exports = {
  entry: './lib/index.ts',
  output: {
    filename: 'index.js',
    path: path.resolve(__dirname, 'dist'),
  },
  target: 'node',
  resolve: {
    extensions: ['.ts', '.js'],
    alias: {
      'XMLHttpRequest': path.resolve(__dirname, './node_modules/xmlhttprequest')
    }
  },
  module: {
    rules: [
      { 
        test: /\.ts$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
        options: {
          presets: [
            [
              '@babel/preset-env',
              {
                targets: {
                  node: true,
                },
              },
            ],
            '@babel/preset-typescript',
          ],
        },
      },
    ],
  },

};

Я не уверен, что это правильный способ разрешения модуля XMLHttpRequest

alias: {
          'XMLHttpRequest': path.resolve(__dirname, './node_modules/xmlhttprequest')
        }

Буду очень признателен, если кто-нибудь поможет мне решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...