webpack 的配置

  1. const path = require('path');
  2. const HtmlWebpackPlugin = require('html-webpack-plugin');
  3. const MiniCssExtractPlugin = require("mini-css-extract-plugin");
  4. const resolve = (...arg) => path.join(__dirname, ...arg);
  5. module.exports = {
  6. entry: './src/index.js',
  7. mode: 'development',
  8. output: {
  9. path: resolve('dist'),//定位,输出文件的目标路径
  10. filename: '[name].js' //文件名[name].js默认,也可自行配置
  11. },
  12. plugins:[
  13. new HtmlWebpackPlugin({
  14. template: './src/index.html',
  15. }),
  16. // // css 单独打包的插件
  17. // new MiniCssExtractPlugin({
  18. // filename: "[name].css",
  19. // chunkFilename: "[id].css"
  20. // })
  21. ],
  22. module: {
  23. rules:[
  24. {
  25. test: /\.(js|jsx)$/,
  26. use:[
  27. {
  28. loader:"babel-loader",
  29. options: {
  30. presets:[
  31. '@babel/preset-react',
  32. '@babel/preset-env',
  33. ]
  34. }
  35. }
  36. ]
  37. },
  38. {
  39. test: /\.css$/,
  40. use: ['style-loader','css-loader'],
  41. },
  42. {
  43. test: /\.less$/,
  44. use: [
  45. 'style-loader', {
  46. loader:'css-loader',
  47. // 开启 less 模块化
  48. options: {
  49. modules: true
  50. }
  51. },
  52. 'less-loader'
  53. ]
  54. }
  55. ]
  56. },
  57. resolve: {
  58. // 设置别名
  59. alias: {
  60. '@': resolve('src'),
  61. },
  62. // 文件后缀补全
  63. extensions: ['.js', '.jsx'],
  64. },
  65. }

antd 为了方便使用直接引入

import antd from “antd/dist/antd.css”;

webpack 中使用 EChart 图

首先引入echarts

import echarts from ‘echarts’

使用如下

  1. import React, { useEffect, useRef } from 'react'
  2. import echarts from 'echarts'
  3. import option from './option'
  4. import Styles from './index.less';
  5. function Chart() {
  6. const chartDom = useRef(null)
  7. let myChart
  8. useEffect(() => {
  9. // 通过 echarts.init 注册一个实例
  10. myChart = echarts.init(chartDom.current)
  11. // 传入 option 配置实现图表
  12. myChart.setOption(option)
  13. // resize() 方法 改变 chart 的大小
  14. window.addEventListener('resize',myChart.resize)
  15. // 闭包的使用 来移除监听 组件卸载时候执行
  16. return () => {
  17. window.removeEventListener('resize',myChart.resize)
  18. }
  19. })
  20. return (
  21. <div ref={chartDom} className={Styles.chart} />
  22. )
  23. }
  24. export default Chart;