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!