Единственная проблема с строкой RFC2397 - это ее спецификация со всеми данными перед данными, но data:
и ,
необязательно:
data:[<mediatype>][;base64],<data>
. Так чистое решение для решения Java 8 это будет:
final int dataStartIndex = dataUrl.indexOf(",") + 1;
final String data = dataUrl.substring(dataStartIndex);
byte[] decoded = java.util.Base64.getDecoder().decode(data);
Конечно, dataStartIndex должен быть проверен.
Благодаря этому ответу Ашиша ( Можно ли перенести локальные модули из node_module? ), я смог найти решение.
Таким образом, проблема заключалась в том, что модуль, который я использовал, импортировал файл js, который не был полностью перенесен (оператор распространения объектов), вместо файла ts или tsx. Это означало, что мне нужно было переустановить загрузчик babel, чтобы я мог сделать отдельный проход с загрузчиком babel для файлов js. Следующая проблема, с которой я столкнулся, заключалась в том, что модуль был скомпилирован с помощью commonjs, и поэтому импорт также пришлось переносить.
Это мои погрузчики выглядят сейчас.
{
{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
presets: [
[
'edge',
{
transpile: 'es2015',
modules: 'commonjs'
}
]
]
}
},
include: [path.resolve(__dirname, 'node_modules/@furystack')]
},
{
test: /\.tsx?$/,
use: [
{
options: {
useTranspileModule: true,
forceIsolatedModules: true,
useCache: true,
useBabel: true,
babelOptions: {
babelrc: false /* Important line */,
presets: [
[
'edge',
{
transpile: 'modern',
modules: 'false'
}
]
]
},
reportFiles: ['src/**/*.{ts,tsx}'],
babelCore: '@babel/core'
},
loader: 'awesome-typescript-loader'
}
],
include: [path.resolve(__dirname, 'src')]
},
}