Создайте пакет с Rollup и используя сторонние модули Common js на стороне браузера - PullRequest
0 голосов
/ 04 мая 2020

Я использую Rollup и пытаюсь создать библиотеку, которая использует стороннюю библиотеку под названием Cybersource TMS (Visa), используя библиотеку cybersource-rest-client . Когда я работал с этой библиотекой в ​​Nodejs, у меня не было проблем, но мне нужно использовать ее и на стороне клиента (в браузере), но я получаю следующую ошибку при компиляции с использованием накопительного пакета:

enter image description here

Когда я проверяю библиотеку в каталоге 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
  }
}

В моем rollup.config. js настройки файла У меня следующее:

import json from '@rollup/plugin-json';
import { terser } from 'rollup-plugin-terser';
import nodePolyfills from 'rollup-plugin-node-polyfills';
import resolve from '@rollup/plugin-node-resolve';
import babel from 'rollup-plugin-babel';
import serve from 'rollup-plugin-serve';
import commonjs from '@rollup/plugin-commonjs';

export default {
  input: 'src/index.js',
  output: [
    {
      file: 'dist/bundle.js',
      format: 'umd'
    },
    {
      file: 'dist/bundle.min.js',
      format: 'iife',
      name: 'version',
      plugins: [terser()]
    },
  ],
  plugins: [
    json(),
    resolve(),
    nodePolyfills(),
    babel({
      exclude: 'node_modules/**'
    }),
    serve({
      host: 'localhost',
      port: 1234,
      contentBase: 'dist',
      historyApiFallback: true
    }),
    commonjs()
  ],
}

В браузере у меня появляется следующая ошибка:

enter image description here

В моем проекте это код, который вызывает библиотеку:

import * as cybersource from 'cybersource-rest-client';

export default class processPayment {
  constructor() {
    console.log(cybersource);
  }
}

Я ценю любую помощь!

...