| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /*
- * @Description:
- * @Author: zcf
- * @Date: 2022-02-08 17:24:53
- * @LastEditTime: 2022-02-14 17:27:45
- * @LastEditors: zcf
- */
- import spritesmith from 'vite-plugin-spritesmith'
- import fs from 'fs'
- export default function createSpritesmith(isBuild) {
- const spriteDirnames = []
- fs.readdirSync('src/assets/sprites').map((dirname) => {
- if (fs.statSync(`src/assets/sprites/${dirname}`).isDirectory()) {
- spriteDirnames.push(dirname)
- }
- })
- const plugin = []
- spriteDirnames.map((item) => {
- plugin.push(
- spritesmith({
- watch: !isBuild,
- src: {
- cwd: `./src/assets/sprites/${item}`,
- glob: '*.png'
- },
- target: {
- image: `./src/assets/sprites/${item}.png`,
- css: [
- [
- `./src/assets/sprites/_${item}.scss`,
- {
- format: 'handlebars_based_template'
- }
- ]
- ]
- },
- apiOptions: {
- cssImageRef: `@/assets/sprites/${item}.png`,
- spritesheet_info: {
- name: item,
- format: 'handlebars_based_template'
- }
- },
- customTemplates: {
- handlebars_based_template: './scss.template.hbs'
- },
- spritesmithOptions: {
- algorithm: 'binary-tree',
- padding: 10
- }
- })
- )
- })
- return plugin
- }
|