Я пытаюсь связать и запустить проект TypeScript с помощью Webpack. Для одного из файлов TypeScript требуется зависимость от внешнего узла. Webpack связывает файл без проблем, но когда я пытаюсь запустить его в браузере, я получаю следующую ошибку.
webpack.config.js
const path = require('path');
const nodeExternals = require('webpack-node-externals');
module.exports = {
entry: './src/index.ts',
resolve: {
extensions: [
'.js',
'.jsx',
'.json',
'.ts',
'.tsx'
]
},
externals: [nodeExternals()],
output: {
libraryTarget: 'commonjs',
path: path.join(__dirname, '.webpack'),
filename: '[name].js',
},
target: 'web',
module: {
loaders: [
{ test: /\.ts(x?)$/, loader: 'ts-loader' },
],
},
};
Зависимость от внешнего узлаaws-iot-устройство-SDK
Может кто-то помочь мне с этим?
Обновление: обнаружено, что следующая строка в файле TypeScript вызывает проблему. есть ли обходной путь для этого?
const client = new IoTClient(true, IoTClientOptions);
У меня нет четкого представления о параметре libraryTarget, и я пробовал использовать указанный вами вариант, но ошибка остается той же.
Что внутри ./src/index.ts?
Следующая строка: const client = new IoTClient (true, IoTClientOptions);
Не могли бы вы предоставить больше контента в index.ts, я понятия не имею, что такое IoTClient и IoTClientOptions.
Смогла найти решение, добавлю сюда.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Как вы используете
require('path');
вам нужно скачать RequireJS
RequireJS - это загрузчик файлов и модулей JavaScript.
или добавьте в свой проект Добавить http://requirejs.org/docs/release/2.2.0/minified/require.js
Следующая конфигурация Webpack решила мою проблему.
const path = require('path');
module.exports = {
entry: {
chatUI: './src/chat-ui.ts',
chatLogic: './src/chat-logic.ts',
},
resolve: {
extensions: [
'.js',
'.jsx',
'.json',
'.ts',
'.tsx'
]
},
output: {
path: path.join(__dirname, '.webpack'),
filename: '[name].js',
},
node: {
fs: 'empty',
tls: 'empty'
},
target: 'web',
module: {
loaders: [
{
test: /\.tsx?$/,
loader: 'awesome-typescript-loader'
}
],
},
};
Почему вы устанавливаете output.libraryTarget на commonjs, вы пытались установить его на
libraryTarget: "umd"?