mirror of
https://github.com/akveo/eva-icons.git
synced 2025-09-03 10:53:08 +02:00
96 lines
2.1 KiB
JavaScript
96 lines
2.1 KiB
JavaScript
/**
|
|
* @license
|
|
* Copyright Akveo. All Rights Reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*/
|
|
|
|
const path = require('path');
|
|
const fs = require('fs-extra');
|
|
|
|
const config = require('../config');
|
|
const fileSystemHelper = require('../helpers/fs-helper');
|
|
|
|
const genScssRoot = (scssRoot) => {
|
|
const buildScss = './eva-icons.scss';
|
|
const rootFileContent = `
|
|
@import 'eva-icons-variables';
|
|
@import 'eva-icons-font';
|
|
`;
|
|
|
|
return new Promise((resolve, reject) => {
|
|
fs.writeFile(
|
|
path.join(scssRoot, buildScss),
|
|
rootFileContent,
|
|
'utf8',
|
|
(error) => {
|
|
if (error) {
|
|
reject(error);
|
|
}
|
|
|
|
resolve();
|
|
},
|
|
);
|
|
});
|
|
};
|
|
|
|
const genScssVariables = (scssRoot) => {
|
|
const buildScss = './_eva-icons-variables.scss';
|
|
const variablesContent = `
|
|
$eva-icons-font-path: '../fonts' !default;
|
|
$eva-icons-font-family: 'Eva-Icons' !default;
|
|
`;
|
|
|
|
return new Promise((resolve, reject) => {
|
|
fs.writeFile(
|
|
path.join(scssRoot, buildScss),
|
|
variablesContent,
|
|
'utf8',
|
|
(error) => {
|
|
if (error) {
|
|
reject(error);
|
|
}
|
|
|
|
resolve();
|
|
},
|
|
);
|
|
});
|
|
};
|
|
|
|
const genScssFont = (scssRoot) => {
|
|
const buildScss = './_eva-icons-font.scss';
|
|
const buildCss = path.join(config.desPath, 'style/eva-icons.css');
|
|
const file = fs.readFileSync(buildCss).toString();
|
|
const content = file
|
|
.replace(/"/g, '\'')
|
|
.replace(/\.\/fonts/g, '#{$eva-icons-font-path}')
|
|
.replace(/(font-family: )(.*)(;)/g, '$1#{$eva-icons-font-family}$3');
|
|
|
|
return new Promise((resolve, reject) => {
|
|
fs.writeFile(
|
|
path.join(scssRoot, buildScss),
|
|
content,
|
|
(error) => {
|
|
if (error) {
|
|
reject(error);
|
|
}
|
|
|
|
resolve();
|
|
},
|
|
);
|
|
});
|
|
};
|
|
|
|
const processScss = () => {
|
|
const scssRoot = path.join(config.desPath, '/style/scss');
|
|
|
|
fileSystemHelper.mkDirByPathSync(scssRoot);
|
|
|
|
return Promise.all([
|
|
genScssRoot(scssRoot),
|
|
genScssVariables(scssRoot),
|
|
genScssFont(scssRoot),
|
|
]);
|
|
};
|
|
|
|
module.exports = processScss;
|