Dva: Die mit dva entwickelte und erstellte Zieldatei ist sehr groß (1,3 M). Ich weiß nicht, wie ich die Paketgröße reduzieren kann?

Erstellt am 13. Dez. 2016  ·  5Kommentare  ·  Quelle: dvajs/dva

Hallo!

Ich benutze dva in letzter Zeit für die Entwicklung und bin den dva-Autoren sehr dankbar für ihre harte Arbeit~
Das Problem, auf das ich im Moment gestoßen bin, ist, dass es nicht viele Projektdateien gibt, aber das verpackte Paket ist sehr groß (index.js hat 1,3 MB erreicht). Ich weiß nicht, ob dva build das Aufteilen des Projekts in mehrere Einträge und das Aufteilen von Seiten nach Funktion unterstützen kann?

question

Hilfreichster Kommentar

Entsprechende Module können bei Bedarf eingeführt werden, zum Beispiel können nur 折线图 , 柱状图 , 饼图 wie folgt eingeführt werden:


// ==== 以下必须引入 ====
// core
import echarts from 'echarts/lib/echarts'
// for ie8
//import 'zrender/lib/vml/vml'
// 柱状图
import 'echarts/lib/chart/bar'
// 折线图
import 'echarts/lib/chart/line'
// 饼图
import 'echarts/lib/chart/pie'

// ==== 以下不引入也可以,只是没效果,也不会报错 ====
// tooltip
import 'echarts/lib/component/tooltip'
// legend
import 'echarts/lib/component/legend'
// title
import 'echarts/lib/component/title'


echarts.init(...)

Noch ärgerlicher ist, dass diese Module keine starken Abhängigkeiten darstellen.Sie werden feststellen, dass einige Module keine Wirkung haben, wenn sie nicht eingeführtwerden, und einige Module während des Renderns eine Fehlermeldung erhalten,die die Einführung bestimmter Module erforderlich macht.

Natürlich ist es einfacher, ein Babel-Plugin zu schreiben. . . . .

Alle 5 Kommentare

Poste deine package.json

@nikogu Unten ist mein Paket.json

 {
  "private": true,
  "entry": {
    "index": "./src/index.js"
  },
  "peerDependencies": {
  },
  "dependencies": {
    "antd": "^2.4.3",
    "dva": "^1.1.0",
    "echarts": "^3.3.1",
    "echarts-for-react": "^1.1.6",
    "moment-timezone": "^0.5.10",
    "path-to-regexp": "^1.7.0",
    "qs": "^6.3.0",
    "react": "^15.3.2",
    "react-dom": "^15.3.2",
    "reqwest": "^2.0.5"
  },
  "devDependencies": {
    "atool-build": "^0.9.0",
    "atool-test-mocha": "^0.1.5",
    "babel-plugin-dev-expression": "^0.2.1",
    "babel-plugin-dva-hmr": "^0.2.0",
    "babel-plugin-import": "^1.1.0",
    "babel-plugin-transform-runtime": "^6.9.0",
    "babel-runtime": "^6.9.2",
    "dora": "^0.4.3",
    "dora-plugin-proxy": "^0.8.4",
    "dora-plugin-webpack": "^0.8.1",
    "dora-plugin-webpack-hmr": "^0.2.1",
    "expect": "^1.20.2",
    "redbox-react": "^1.3.2"
  },
  "scripts": {
    "start": "dora --plugins \"proxy?watchDirs=./mock,webpack?port=8000,webpack-hmr\"",
    "build": "atool-build",
    "test": "atool-test-mocha ./src/**/*-test.js"
  }
}

Ich habe das Projekt mit dvacli . erstellt

dva new myproject

echart ist schon groß

Die offizielle Website von

Entsprechende Module können bei Bedarf eingeführt werden, zum Beispiel können nur 折线图 , 柱状图 , 饼图 wie folgt eingeführt werden:


// ==== 以下必须引入 ====
// core
import echarts from 'echarts/lib/echarts'
// for ie8
//import 'zrender/lib/vml/vml'
// 柱状图
import 'echarts/lib/chart/bar'
// 折线图
import 'echarts/lib/chart/line'
// 饼图
import 'echarts/lib/chart/pie'

// ==== 以下不引入也可以,只是没效果,也不会报错 ====
// tooltip
import 'echarts/lib/component/tooltip'
// legend
import 'echarts/lib/component/legend'
// title
import 'echarts/lib/component/title'


echarts.init(...)

Noch ärgerlicher ist, dass diese Module keine starken Abhängigkeiten darstellen.Sie werden feststellen, dass einige Module keine Wirkung haben, wenn sie nicht eingeführtwerden, und einige Module während des Renderns eine Fehlermeldung erhalten,die die Einführung bestimmter Module erforderlich macht.

Natürlich ist es einfacher, ein Babel-Plugin zu schreiben. . . . .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen