В настоящее время я занимаюсь разработкой лямбда-функции с использованием 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')
}
Буду очень признателен, если кто-нибудь поможет мне решить эту проблему.