typescript - Hur man anger både standard- och namngiven extern import som output.globals i rollup.js?


Jag kan inte hitta hur man specificerar både standard- och namngivna import som output.globals med rollup.js (v1.27.0)

Jag använder apprun.js som extern i HTML-filen.

Min index.html:

<!doctype html>
<html>
<head>
<script src="https://unpkg.com/[email /dist/apprun.js"></script>
</head>
<body>
<script src="x.js"></script>
</body>
</html>

där x.js kompileras av rollup från x.tsx nedan:

import app, {Component} from 'apprun'

class Page extends Component {
    view = (s) => <div>Main Page</div>
}
app.render(document.body, <Page />)

Utan behov av att installera apprun.js lokalt, behöver jag bara ladda ner https://github.com/yysun/apprun/blob/master/apprun.d.ts till samma plats som x.tsx för att passera TypeScript-typkontrollen. Att installera apprun.js lokalt hjälper ändå inte i detta fall.

Min rollup.config.js

import typescript from 'rollup-plugin-typescript'
import { terser } from 'rollup-plugin-terser'
const production = !process.env.ROLLUP_WATCH
export default {
    external: ['apprun']
    , input: 'x.tsx'
    , output: {
        file: 'x.js'
        , format: 'iife'
        , globals: {
            apprun: 'app'  // <<-- how to add 'Component' also?
        }
    }
    , plugins: [
        typescript()
        , production && terser()
    ]
}

rollup -c -w ger x.js

    var Page = /** @class */ (function (_super) {
        __extends(Page, _super);
        function Page() {
            ...
            return _this;
        }
        return Page;
    }(app.Component));    // <<--- app.Component is undefined, should be Component
    app__default.render(document.body, app__default.createElement(Page, null));
}(app));

På den tredje raden från slutet, app.Component bör bara vara Component, som ses i apprun.d.ts

Några råd om hur man konfigurerar rollup så att både app och Component behandlas som globala samtidigt? Tack!