Я пытаюсь создать библиотеку, которая использует стороннюю библиотеку под названием Cybersource TMS (Visa), используя библиотеку cybersource-rest-client . Когда я работал с этой библиотекой в Nodejs, у меня не было проблем, но мне нужно использовать ее и на стороне клиента (в браузере), но я получаю следующую ошибку при компиляции с Webpack:
ERROR in ./node_modules/cybersource-rest-client/src/index.js
Module not found: Error: Can't resolve 'model/TmsV1InstrumentIdentifiersPaymentInstrumentsGet200ResponseEmbeddedBuyerInformation' in 'C:\Users\MSI\Belcorp\sdk\node_modules\cybersource-rest-client\src'
@ ./node_modules/cybersource-rest-client/src/index.js 19:4-35645
@ ./src/providers/cybersource/process-payment.js
@ ./src/providers/Provider.js
@ ./src/index.js
ERROR in ./node_modules/cybersource-rest-client/src/index.js
Module not found: Error: Can't resolve 'model/TmsV1InstrumentIdentifiersPaymentInstrumentsGet200ResponseEmbeddedBuyerInformationIssuedBy' in 'C:\Users\MSI\Belcorp\sdk\node_modules\cybersource-rest-client\src'
@ ./node_modules/cybersource-rest-client/src/index.js 19:4-35645
@ ./src/providers/cybersource/process-payment.js
@ ./src/providers/Provider.js
@ ./src/index.js
ERROR in ./node_modules/cybersource-rest-client/src/index.js
Module not found: Error: Can't resolve 'model/TmsV1InstrumentIdentifiersPaymentInstrumentsGet200ResponseEmbeddedBuyerInformationPersonalIdentification' in 'C:\Users\MSI\Belcorp\sdk\node_modules\cybersource-rest-client\src' @ ./node_modules/cybersource-rest-client/src/index.js 19:4-35645
@ ./src/providers/cybersource/process-payment.js
@ ./src/providers/Provider.js
@ ./src/index.js
ERROR in ./node_modules/cybersource-rest-client/src/index.js
Module not found: Error: Can't resolve 'model/TmsV1InstrumentIdentifiersPaymentInstrumentsGet200ResponseEmbeddedCard' in 'C:\Users\MSI\Belcorp\sdk\node_modules\cybersource-rest-client\src'
@ ./node_modules/cybersource-rest-client/src/index.js 19:4-35645
@ ./src/providers/cybersource/process-payment.js
@ ./src/providers/Provider.js
@ ./src/index.js
ERROR in ./node_modules/cybersource-rest-client/src/index.js
Module not found: Error: Can't resolve 'model/TmsV1InstrumentIdentifiersPaymentInstrumentsGet200ResponseEmbeddedEmbedded' in 'C:\Users\MSI\Belcorp\sdk\node_modules\cybersource-rest-client\src'
@ ./node_modules/cybersource-rest-client/src/index.js 19:4-35645
@ ./src/providers/cybersource/process-payment.js
@ ./src/providers/Provider.js
@ ./src/index.js
ERROR in ./node_modules/cybersource-rest-client/src/index.js
Module not found: Error: Can't resolve 'model/TmsV1InstrumentIdentifiersPaymentInstrumentsGet200ResponseEmbeddedEmbeddedInstrumentIdentifier' in 'C:\Users\MSI\Belcorp\sdk\node_modules\cybersource-rest-client\src'
@ ./node_modules/cybersource-rest-client/src/index.js 19:4-35645
@ ./src/providers/cybersource/process-payment.js
@ ./src/providers/Provider.js
@ ./src/index.js
ERROR in ./node_modules/cybersource-rest-client/src/index.js
Module not found: Error: Can't resolve 'model/TmsV1InstrumentIdentifiersPaymentInstrumentsGet200ResponseEmbeddedLinks' in 'C:\Users\MSI\Belcorp\sdk\node_modules\cybersource-rest-client\src'
@ ./node_modules/cybersource-rest-client/src/index.js 19:4-35645
@ ./src/providers/cybersource/process-payment.js
@ ./src/providers/Provider.js
@ ./src/index.js
// and many more similar mistakes
Когда Я проверяю библиотеку в каталоге node_modules / и обнаруживаю, что указанный файл имеет следующую структуру:
(function(factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['ApiClient', 'model/AddNegativeListRequest', 'model/AuthReversalRequest', 'model/AuthorizationOptions', 'model/BillTo', 'model/BuyerInformation', 'model/CapturePaymentRequest', 'model/CardInfo', 'model/CheckPayerAuthEnrollmentRequest', 'model/CreateAdhocReportRequest', 'model/CreateCreditRequest', 'model/CreateDecisionManagerCaseRequest', 'model/CreateInstrumentIdentifierRequest', 'model/CreateInvoiceRequest', 'model/CreatePaymentInstrumentRequest', 'model/CreatePaymentRequest', 'model/CreateReportSubscriptionRequest', 'model/CreateSearchRequest', 'model/DerPublicKey', 'model/Detail', 'model/EmbeddedInstrumentIdentifierRequest', 'model/EmbeddedInstrumentIdentifierResponse', 'model/Error', 'model/ErrorBean', 'model/ErrorFieldBean', 'model/ErrorLinks', 'model/ErrorResponse', 'model/ErrorResponseWithHAL',
// and many more similar statements
}
}
В моем файле webpack.config. js Настройки у меня следующие:
const path = require('path');
const HtmlWebPackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'development',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'my-payment-library.js',
libraryTarget: 'umd'
},
module: {
rules: [
{
test: /\.m?js$/,
exclude: /(node_modules)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}
],
},
node: {
fs: 'empty'
}
};