Исключить node_module / package из веб-пакета производственной сборки

Я работаю над проектом, который использует "webpack": "^2.4.1",, это проект ReactJS, я установил модуль airbnb/prop-types-exact, я использую этот пакет для целей разработки, где я бы не хотел, чтобы пользователь компонента, который я написал, передавал несуществующие свойства к этому компоненту.

Я хотел бы удалить этот пакет при создании приложения для производства. Я использую Webpack Bundle Initializer, чтобы увидеть размер пакета airbnb/prop-types-exact, он не такой большой, но я бы хотел, чтобы он был удален из производственной сборки. Возможно ли это? С версией webpack, которую я использую, или с последней?

Буду признателен за любые ресурсы или идеи по этому поводу, спасибо.

Можете ли вы указать пакет как devDependency в вашем package.json? docs.npmjs.com/files/package.json#devdependencies

Chris Schmitz 18.06.2018 16:15

Да, я установил его в зависимости от разработчика

teebo 18.06.2018 16:20

вопрос для меня не имеет смысла! если вы хотите удалить зависимость в любой сборке, вы не будете импортировать ее, будь то production или dev.

VISHAL DAGA 18.06.2018 16:33
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
3
229
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Следуя примеру из этого Блог Марка

И еще ссылки на эти плагины: Игнорировать плагин и DefinePlugin Я использовал плагины, как и он, это IgnorePlugin и UglifyJsPlugin, а затем в компоненте, в котором я использую пакет airbnb/prop-types-exact, я проверяю, в какой среде я нахожусь ...

let exactProps ;
if (process.env.NODE_ENV === "development") {
    exactProps = require("prop-types-exact");
}

И в зависимости от того, имеет ли exactProps значение, что означает, что функция require была запущена, и, что означает, что exactProps имеет функцию из пакета prop-types-exact, Я оборачиваю свои типы опор этой функцией, например.

const propTypes = {
  someProp: PropTypes.iRequired
}

if (exactProps && typeof exactProps === "function") {
  MyComponent.propTypes = exactProps(propTypes);
} else {
  MyComponent.propTypes = propTypes;
}

И, наконец, я экспортирую компонент MyComponent

export MyComponent 

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

Другие вопросы по теме