UNPKG

webpack-theme-color-replacer

Version:

A webpack plugin designed to dynamicly change the theme colors at runtime. 实现运行时快速动态替换主题色的webpack插件.

39 lines (34 loc) 1.11 kB
var AssetsExtractor = require('./AssetsExtractor') var replaceFileName = require('./replaceFileName') var path = require('path') var fs = require('fs') var glob = require('glob') var mkdirp = require('mkdirp') /* // use in Nodejs: var extractColor = require('webpack-theme-color-replacer/src/nodeRun') extractColor({ src: 'css/*.*', fileName: 'css/theme-color-[contenthash:8].css', matchColors: ['#e2721d', '#ccc'] }) */ module.exports = function run(options) { var mockAssets = getMockAssets(options); var code = new AssetsExtractor(options).extractAssets(mockAssets) var outFile = replaceFileName(options.fileName, code); mkdirp.sync(path.dirname(outFile)) fs.writeFileSync(outFile, code) return { code, outFile } } function getMockAssets(options) { var mockAssets = {} var srcList = [].concat(options.src) srcList.map(src => { glob.sync(path.resolve(src)).map(pathFn => { var fn = path.relative('.', pathFn) mockAssets[fn] = { source: () => fs.readFileSync(pathFn, 'utf-8') } }) }) return mockAssets; }