@farmfe/core
Version:
Farm is a extremely fast web build tool written in Rust. Farm can start a project in milliseconds and perform HMR within 10ms, making it much faster than similar tools like webpack and vite.
59 lines • 1.87 kB
JavaScript
import { Compiler } from '../compiler/index.js';
import { convertErrorMessage } from './error.js';
import * as fs from 'node:fs';
function createTraceDepCompiler(entry, logger) {
const config = getDefaultTraceDepCompilerConfig(entry);
config.config.progress = false;
return new Compiler(config, logger);
}
export async function traceDependencies(configFilePath, logger) {
try {
// maybe not find config from local
if (!(fs.existsSync(configFilePath) && fs.statSync(configFilePath).isFile())) {
return [];
}
const compiler = createTraceDepCompiler(configFilePath, logger);
const files = (await compiler.traceDependencies());
return files;
}
catch (error) {
const errorMessage = convertErrorMessage(error);
throw Error(`Error tracing dependencies: ${errorMessage}`);
}
}
function getDefaultTraceDepCompilerConfig(entry) {
return {
config: {
input: {
index: entry
},
resolve: {
autoExternalFailedResolve: true
},
external: ['^[^./].*'],
sourcemap: false,
presetEnv: false,
persistentCache: false,
minify: false,
lazyCompilation: false
},
jsPlugins: [
{
name: 'trace-dependencies-ignore-node-file-plugin',
load: {
filters: {
resolvedPaths: ['\\.node$']
},
executor: () => {
return {
content: '',
moduleType: 'js'
};
}
}
}
],
rustPlugins: []
};
}
//# sourceMappingURL=trace-dependencies.js.map