как управлять вендорскими библиотеками в реагировании - PullRequest
0 голосов
/ 02 декабря 2018

в моем приложении реагировать на js (используя webpack) я использовал antd UI , который добавил пакет draft-js в мой проект. Но я не знаю, где я использовал draft.js
У меня два вопроса.
1-откуда я знаю, где я использовал draft-js.
2- draft.js увеличение моего bundle размера файла. i удалено draft-js из моего node_modules он показывает мне ошибку "draft-js" не найдена.

package.json

"dependencies": {
    "antd": "^3.10.9",
    "axios": "^0.18.0",
    "bundle-loader": "^0.5.6",
    "express-static-gzip": "^1.1.3",
    "moment": "^2.22.1",
    "node-sass": "^4.7.2",
    "normalize.css": "7.0.0",
    "npm": "^6.1.0",
    "rc-time-picker": "^3.3.1",
    "react": "16.0.0",
    "react-dom": "16.0.0",
    "react-ga": "^2.5.3",
    "react-google-maps": "^9.4.5",
    "react-loadable": "^5.5.0",
    "react-redux": "^5.0.7",
    "react-router": "^4.2.0",
    "react-router-dom": "^4.2.2",
    "recompose": "^0.27.1",
    "redux": "^3.7.2",
    "redux-thunk": "^2.2.0"
  },

enter image description here и immutable.js установить два раза, еще одна вещь заключается в том, что после выполнения gzip также antd и @ ant-design libs увеличивая мои связка размер.

так, как я могу решить этот беспорядок.

1 Ответ

0 голосов
/ 02 декабря 2018

Чтобы ответить на ваш основной вопрос, draft-js является переходной зависимостью вашего приложения.Чтобы определить, где он используется, вам нужно взглянуть на код (предпочтительно источник) прямой зависимости, которая зависит от него.В этом случае это будет antd@^3.10.9.

Хотя есть определенные исключения, в общем случае невозможно иметь прямую зависимость без транзитивной зависимости от ее зависимостей.

Toрешить проблему воспринимаемой установки ImmutableJS несколько раз, в разных версиях применяется одна и та же логика.Когда две или более ваших зависимостей имеют транзитивную зависимость от неперекрывающихся версий одного и того же пакета, вы в конечном итоге устанавливаете несколько версий этого пакета.Без этого поведения ваши зависимости не могли бы положиться на работу.

Другими словами, рассматривайте несовместимые версии одного пакета как отдельные логические пакеты.

Сказав это, можно с помощью определенных инструментов, таких как RequireJS и SystemJS и других, переопределить транзитивный.зависимости, например, заставляя их использовать общую версию ImmutableJS.Однако этот подход, хотя и мощный, должен применяться с большой осторожностью, поскольку он действительно может зависеть от поведения, характерного для версии, которую они первоначально указали.

...