@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.
51 lines • 1.62 kB
JavaScript
/**
* Hack plugin to transform css for Vite compatibility:
* 1. wrap the css code with `` before post plugins execute(priority 98)
* 2. unwrap the css code from `` after post plugins execute
*/
import { normalizeFilterPath } from '../utils.js';
const BEGIN = '__farm_vite_css_hack_start__=`';
const END = '`;__farm_vite_css_hack_end__';
export function cssPluginWrap(options) {
const { filtersUnion } = options;
const resolvedPaths = Array.from(filtersUnion).map(normalizeFilterPath);
return {
name: 'vite-adapter-css-plugin-wrap',
priority: 98,
transform: {
filters: {
resolvedPaths,
moduleTypes: []
},
async executor(param) {
if (param.moduleType === 'css') {
return {
content: BEGIN + param.content + END
};
}
}
}
};
}
export function cssPluginUnwrap(options) {
const { filtersUnion } = options;
const resolvedPaths = Array.from(filtersUnion).map(normalizeFilterPath);
return {
name: 'vite-adapter-css-plugin-unwrap',
priority: 98,
transform: {
filters: {
resolvedPaths,
moduleTypes: []
},
async executor(param) {
if (param.moduleType === 'css') {
return {
content: param.content.replace(BEGIN, '').replace(END, '')
};
}
}
}
};
}
//# sourceMappingURL=css.js.map