从生产构建 webpack 中排除 node_module/package
Exclude node_module/package from production build webpack
我正在开发一个使用 "webpack": "^2.4.1",
的项目,它是一个 ReactJS 项目,我已经安装了模块 airbnb/prop-types-exact
,我将这个包用于开发目的,我不想要我编写的组件的用户将不存在的属性传递给该组件。
我想在构建用于生产的应用程序时删除此包。我正在使用 Webpack Bundle Initializer
来查看 airbnb/prop-types-exact
的包大小,它并没有那么大,但我想将其从生产构建中删除,这可以实现吗?使用我正在使用的 webpack 版本还是使用后一个版本?
如果有任何关于此的资源或想法,我将不胜感激。
通过这个 Blog by Mark
中的示例
以及关于这些插件的更多参考资料:
IgnorePlugin and 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
我打算将组件的 prop 类型的包装移动到通用模块中,以便它可以重复使用
我正在开发一个使用 "webpack": "^2.4.1",
的项目,它是一个 ReactJS 项目,我已经安装了模块 airbnb/prop-types-exact
,我将这个包用于开发目的,我不想要我编写的组件的用户将不存在的属性传递给该组件。
我想在构建用于生产的应用程序时删除此包。我正在使用 Webpack Bundle Initializer
来查看 airbnb/prop-types-exact
的包大小,它并没有那么大,但我想将其从生产构建中删除,这可以实现吗?使用我正在使用的 webpack 版本还是使用后一个版本?
如果有任何关于此的资源或想法,我将不胜感激。
通过这个 Blog by Mark
中的示例以及关于这些插件的更多参考资料:
IgnorePlugin and 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
我打算将组件的 prop 类型的包装移动到通用模块中,以便它可以重复使用