feat(core): Integrate Rolldown as optional bundler, migrate filesystem to smartfs, and update bundler/tooling
This commit is contained in:
@@ -11,10 +11,16 @@ export class TsBundleProcess {
|
||||
public async getAliases() {
|
||||
try {
|
||||
const aliasObject: Record<string, string> = {};
|
||||
const localTsConfig = plugins.smartfile.fs.toObjectSync(
|
||||
plugins.path.join(paths.cwd, 'tsconfig.json')
|
||||
);
|
||||
if (localTsConfig.compilerOptions && localTsConfig.compilerOptions.paths) {
|
||||
const tsconfigPath = plugins.path.join(paths.cwd, 'tsconfig.json');
|
||||
const tsconfigContent = await plugins.fs
|
||||
.file(tsconfigPath)
|
||||
.encoding('utf8')
|
||||
.read();
|
||||
const localTsConfig = JSON.parse(tsconfigContent as string);
|
||||
if (
|
||||
localTsConfig.compilerOptions &&
|
||||
localTsConfig.compilerOptions.paths
|
||||
) {
|
||||
for (const alias of Object.keys(localTsConfig.compilerOptions.paths)) {
|
||||
const aliasPath = localTsConfig.compilerOptions.paths[alias][0];
|
||||
aliasObject[alias] = aliasPath;
|
||||
@@ -38,10 +44,10 @@ export class TsBundleProcess {
|
||||
tsconfigFilename: paths.tsconfigPath,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const outputDir = plugins.path.dirname(toArg);
|
||||
const outputFilename = plugins.path.basename(toArg);
|
||||
|
||||
|
||||
await result.write({
|
||||
dir: outputDir,
|
||||
entryFileNames: outputFilename,
|
||||
@@ -59,21 +65,18 @@ export class TsBundleProcess {
|
||||
console.log('rolldown specific:');
|
||||
console.log(`from: ${fromArg}`);
|
||||
console.log(`to: ${toArg}`);
|
||||
|
||||
|
||||
const result = await plugins.rolldown({
|
||||
input: fromArg,
|
||||
resolve: {
|
||||
alias: await this.getAliases(),
|
||||
tsconfigFilename: paths.tsconfigPath,
|
||||
},
|
||||
experimental: {
|
||||
enableComposingJsPlugins: true,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const outputDir = plugins.path.dirname(toArg);
|
||||
const outputFilename = plugins.path.basename(toArg);
|
||||
|
||||
|
||||
await result.write({
|
||||
dir: outputDir,
|
||||
entryFileNames: outputFilename,
|
||||
@@ -88,7 +91,7 @@ export class TsBundleProcess {
|
||||
const run = async () => {
|
||||
console.log('running spawned compilation process');
|
||||
const transportOptions: interfaces.IEnvTransportOptions = JSON.parse(
|
||||
process.env.transportOptions
|
||||
process.env.transportOptions,
|
||||
);
|
||||
console.log('=======> ROLLDOWN');
|
||||
console.log(transportOptions);
|
||||
@@ -98,18 +101,30 @@ const run = async () => {
|
||||
if (transportOptions.mode === 'test') {
|
||||
console.log('building for test:');
|
||||
await tsbundleProcessInstance.buildTest(
|
||||
plugins.smartpath.transform.makeAbsolute(transportOptions.from, process.cwd()),
|
||||
plugins.smartpath.transform.makeAbsolute(transportOptions.to, process.cwd()),
|
||||
transportOptions.argv
|
||||
plugins.smartpath.transform.makeAbsolute(
|
||||
transportOptions.from,
|
||||
process.cwd(),
|
||||
),
|
||||
plugins.smartpath.transform.makeAbsolute(
|
||||
transportOptions.to,
|
||||
process.cwd(),
|
||||
),
|
||||
transportOptions.argv,
|
||||
);
|
||||
} else {
|
||||
console.log('building for production:');
|
||||
await tsbundleProcessInstance.buildProduction(
|
||||
plugins.smartpath.transform.makeAbsolute(transportOptions.from, process.cwd()),
|
||||
plugins.smartpath.transform.makeAbsolute(transportOptions.to, process.cwd()),
|
||||
transportOptions.argv
|
||||
plugins.smartpath.transform.makeAbsolute(
|
||||
transportOptions.from,
|
||||
process.cwd(),
|
||||
),
|
||||
plugins.smartpath.transform.makeAbsolute(
|
||||
transportOptions.to,
|
||||
process.cwd(),
|
||||
),
|
||||
transportOptions.argv,
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
run();
|
||||
run();
|
||||
|
||||
Reference in New Issue
Block a user