diff --git a/packages/main/config/postcss.bundles/postcss.config.js b/packages/main/config/postcss.bundles/postcss.config.js index 1d0b5a8bb33f..c5fa83a1c8d3 100644 --- a/packages/main/config/postcss.bundles/postcss.config.js +++ b/packages/main/config/postcss.bundles/postcss.config.js @@ -1,6 +1,7 @@ const postcssImport = require('postcss-import'); const combineSelectors = require('postcss-combine-duplicated-selectors'); const postcssCSStoESM = require('../../lib/postcss-css-to-esm/index.js'); +const postcssCSStoJSON = require('../../lib/postcss-css-to-json/index.js'); const postcssDerivedColors = require('../../lib/postcss-process-derived-colors/index'); const cssnano = require('cssnano'); const postcssAddFallback = require('../../lib/postcss-add-fallback/index.js'); @@ -19,5 +20,6 @@ module.exports = { }, ]}, ), postcssCSStoESM(), + postcssCSStoJSON(), ] }; diff --git a/packages/main/lib/postcss-css-to-json/index.js b/packages/main/lib/postcss-css-to-json/index.js new file mode 100644 index 000000000000..64fe13f1b0f1 --- /dev/null +++ b/packages/main/lib/postcss-css-to-json/index.js @@ -0,0 +1,20 @@ +const postcss = require('postcss'); +const fs = require('fs'); +const path = require('path'); +const mkdirp = require('mkdirp'); + +module.exports = postcss.plugin('add css to JSON transform plugin', function (opts) { + opts = opts || {}; + + return function (root) { + const css = root.toString(); + const targetFile = root.source.input.from.replace("/src/", "/dist/").replace("\\src\\", "\\dist\\"); + + mkdirp.sync(path.dirname(targetFile)); + + const filePath = `${targetFile}.json`; + + fs.writeFileSync(filePath, JSON.stringify({_: css})); + + } +});