From 1d4eeb15aa88e689d2fdd8e0c172be0890a787a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=B3=B0=E7=9A=84=E5=A4=8F=E5=A4=A9?= Date: Wed, 29 Jun 2022 19:34:45 +0800 Subject: [PATCH] chore: support svg loader (#81) --- view/package.json | 8 ++++--- view/src/assets/logo.svg | 41 +++++++++++++++++++++++++++++++++ view/src/components/Icon.js | 22 ++++++++++++++++++ view/src/components/SiderBar.js | 6 ++++- view/src/index.js | 6 +++++ view/webpack.config.js | 13 ++++++++++- 6 files changed, 91 insertions(+), 5 deletions(-) create mode 100644 view/src/assets/logo.svg create mode 100644 view/src/components/Icon.js diff --git a/view/package.json b/view/package.json index 776d991..11170d0 100644 --- a/view/package.json +++ b/view/package.json @@ -52,7 +52,7 @@ "lodash.get": "^4.4.2", "lodash.uniqby": "^4.7.0", "macaca-cli": "2", - "macaca-electron": "7", + "macaca-electron": "18", "macaca-wd": "3", "mini-css-extract-plugin": "^0.4.0", "postcss-loader": "^2.1.6", @@ -69,6 +69,9 @@ "react-router-dom": "^4.2.2", "style-loader": "^0.21.0", "stylelint": "^9.3.0", + "svg-sprite-loader": "^6.0.11", + "svgo": "^2.8.0", + "svgo-loader": "^3.0.0", "url-loader": "^1.1.2", "url-parse": "^1.4.3", "webpack": "^4.10.0", @@ -80,6 +83,5 @@ }, "dependencies": { "dayjs": "^1.7.7" - }, - "licenses": "MIT" + } } diff --git a/view/src/assets/logo.svg b/view/src/assets/logo.svg new file mode 100644 index 0000000..c4b1c59 --- /dev/null +++ b/view/src/assets/logo.svg @@ -0,0 +1,41 @@ + + + + logo-color-1 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + reliable + + + + + + \ No newline at end of file diff --git a/view/src/components/Icon.js b/view/src/components/Icon.js new file mode 100644 index 0000000..b3bfe51 --- /dev/null +++ b/view/src/components/Icon.js @@ -0,0 +1,22 @@ +import React from 'react'; +import classnames from 'classnames'; + +function Icon(props) { + const { className, type, width, height, fill, radius, style = {} } = props; + return ( + + + + ); +} + +export default Icon; diff --git a/view/src/components/SiderBar.js b/view/src/components/SiderBar.js index 1757eee..aa61a84 100644 --- a/view/src/components/SiderBar.js +++ b/view/src/components/SiderBar.js @@ -12,6 +12,7 @@ import { SettingOutlined, } from '@ant-design/icons'; import { FormattedMessage } from 'react-intl'; +import Icon from './Icon'; const Sider = Layout.Sider; @@ -32,7 +33,10 @@ export default class SiderBar extends React.Component { >
- logo +

Reliable

diff --git a/view/src/index.js b/view/src/index.js index d3a05b2..7a367cf 100644 --- a/view/src/index.js +++ b/view/src/index.js @@ -43,6 +43,12 @@ const chooseLocale = () => { }; } }; + +const importAll = (r) => { + return r.keys().forEach(r); +}; +importAll(require.context('./assets', false, /\.svg$/)); + const lang = chooseLocale(); window.addEventListener('load', () => { diff --git a/view/webpack.config.js b/view/webpack.config.js index 3f73358..bf2e51a 100644 --- a/view/webpack.config.js +++ b/view/webpack.config.js @@ -74,7 +74,18 @@ module.exports = (env, argv) => { ], }, { test: /\.svg$/, - loader: 'url-loader', + use: [ + { + loader: 'svg-sprite-loader', + options: { + symbolId: '[name]', + }, + }, + { + loader: 'svgo-loader', + }, + ], + include: [path.resolve(__dirname, 'src', 'assets')], }, ], },