1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- const path = require('path');
- const html = require('choo/html');
- const NAME = 'AndroidIndexPlugin';
- function chunkFileNames(compilation) {
- const names = {};
- for (const chunk of compilation.chunks) {
- for (const file of chunk.files) {
- if (!/\.map$/.test(file)) {
- names[`${chunk.name}${path.extname(file)}`] = file;
- }
- }
- }
- return names;
- }
- class AndroidIndexPlugin {
- apply(compiler) {
- compiler.hooks.emit.tap(NAME, compilation => {
- const files = chunkFileNames(compilation);
- const page = html`
- <html lang="en-US">
- <head>
- <title>Send</title>
- <meta charset="utf-8" />
- <meta
- name="viewport"
- content="width=device-width, initial-scale=1"
- />
- <base href="file:///android_asset/" />
- <link href="${files['app.css']}" rel="stylesheet" />
- <script src="${files['android.js']}"></script>
- </head>
- <body></body>
- </html>
- `
- .toString()
- .replace(/\n\s{6}/g, '\n');
- compilation.assets['android.html'] = {
- source() {
- return page;
- },
- size() {
- return page.length;
- }
- };
- });
- }
- }
- module.exports = AndroidIndexPlugin;
|