Skip to content

Babel options to use import instead of require (for rollup) #206

@joehua87

Description

@joehua87

Currently I see that react-imported-component/babel injects

const headerTemplate = template(
`var importedWrapper = require('react-imported-component/wrapper');`,
templateOptions
);

The problem is that the generated code is not work correctly in esm built (with rollup):

The generated code

var importedWrapper = require('react-imported-component/wrapper');
var PageA = loader(function () {
  return importedWrapper("imported_-14q99sb_component", Promise.resolve().then(function () {
    return _interopRequireWildcard(require('./pages/PageA'));
  }));
});
var PageB = loader(function () {
  return importedWrapper("imported_nl42ef_component", Promise.resolve().then(function () {
    return _interopRequireWildcard(require('./pages/PageB'));
  }));
});

If I manually change the code above to

import importedWrapper from 'react-imported-component/wrapper';
var PageA = loader(function () {
  return importedWrapper("imported_-14q99sb_component", import('./pages/PageA').then((m) => {
    return _interopRequireWildcard(m.default);
  }));
});
var PageB = loader(function () {
  return importedWrapper("imported_nl42ef_component", import('./pages/PageB').then((m) => {
    return _interopRequireWildcard(m.default);
  }));
});

Then it works perfectly

I can submit a PR if it's a suitable solution

Reproduce repo

https://github.com/joehua87/imported-component-rollup

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions