mirror of
https://github.com/laurent22/joplin.git
synced 2026-10-25 02:47:28 +00:00
57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
const sass = require('sass');
|
|
const fs = require('fs-extra');
|
|
const { basename } = require('path');
|
|
|
|
|
|
// module.exports = async function compileSass(inputPaths, outputPath) {
|
|
// const promises = [];
|
|
// for (const inputPath of inputPaths) {
|
|
// console.info(`Compiling ${inputPath}...`);
|
|
|
|
// promises.push(sassRender({
|
|
// file: inputPath,
|
|
// sourceMap: true,
|
|
// outFile: outputPath,
|
|
// }));
|
|
// }
|
|
|
|
// const results = await Promise.all(promises);
|
|
|
|
// const cssString = results.map(r => r.css.toString()).join('\n');
|
|
// const mapString = results.map(r => r.map.toString()).join('\n');
|
|
|
|
// await Promise.all([
|
|
// fs.writeFile(outputPath, cssString, 'utf8'),
|
|
// fs.writeFile(`${outputPath}.map`, mapString, 'utf8'),
|
|
// ]);
|
|
|
|
// console.info(`Generated ${outputPath}`);
|
|
// };
|
|
|
|
module.exports = async function compileSass(inputPath, outputPath) {
|
|
// The SASS doc claims that compile is twice as fast as compileAsync, so if speed
|
|
// turns out to be an issue we could use that instead. The advantage of async is
|
|
// that we can run compilation of each file in parallel (and running other async
|
|
// gulp tasks in parallel too).
|
|
const result = await sass.compileAsync(inputPath, {
|
|
sourceMap: true,
|
|
style: 'expanded',
|
|
sourceMapIncludeSources: true,
|
|
});
|
|
|
|
const cssString = [
|
|
result.css.toString(),
|
|
// The .compileAsync API doesn't automatically add the source mapping comment.
|
|
// Without this, the Electron dev tools can't load the original sources.
|
|
`/*# sourceMappingURL=${basename(outputPath)}.map*/`,
|
|
].join('\n');
|
|
const mapString = JSON.stringify(result.sourceMap);
|
|
|
|
await Promise.all([
|
|
fs.writeFile(outputPath, cssString, 'utf8'),
|
|
fs.writeFile(`${outputPath}.map`, mapString, 'utf8'),
|
|
]);
|
|
|
|
console.info(`Generated ${outputPath}`);
|
|
};
|