Я хочу объединить некоторые файлы (файлы со статическим импортом), но некоторые не нужно объединять (файлы с динамическим импортом).
Как я могу сказать это машинописи?
Демонстрация сделана с 4 файлами, одним индексом с функцией main () и 3 классами A, B и C.
Текущая конфигурация машинописного текста:
{
"compilerOptions": {
"allowJs": true,
"target": "es2017",
"module": "esnext",
"outDir": "lib",
"sourceMap": false,
"strict": true,
"noImplicitAny": false,
"removeComments": true,
"lib": [
"esnext"
],
},
"compileOnSave": true,
"include": [
"src/**/*.ts",
"src/**/*.js"
],
"exclude": [
"node_modules",
"old"
]
}
src / index.ts
'use strict';
//@ts-check
import { C } from './c/c'; // I want this one to be merged in index
export const main = async () => {
const c = new C();
c.log();
}
main();
src / c.ts
'use strict';
//@ts-check
import { B } from '../b/b'; // I want this one to be merged in c, so in index
export class C {
async log() {
const A = await import('/' + 'a.js');
const a = new A();
a.log();
const b = new B();
b.log();
}
}
src / b.ts
'use strict';
//@ts-check
export class B {
async log() {
console.log('b');
}
}
src / a.ts
'use strict';
//@ts-check
export class A {
log() {
console.log('a');
}
}
В настоящее время я получаю:
- lib/a/a.js
- lib/b/b.js
- lib/c/c.js
- lib/index.js
Но я бы хотел:
- lib/a.js // Apart from index, because it is dynamically imported
- lib/index.js
Любая идея?
Есть ли декоратор, который скажет машинописному тексту слить c и b в индекс, а затем поместить в сторону индекс?
По возможности, мне не нужно добавлять какой-либо слой сборки (такой веб-пакет), и оставайтесь только с машинописью.