繁体   English   中英

有条件导入仍然是Webpack中捆绑软件的一部分

[英]Conditional Import still part of bundle in Webpack

我正在尝试有条件地加载模块,该条件似乎可以工作,但是当条件为false时,webpack仍将条件模块作为包的一部分,这是导入代码:

if (process.env.FEAT_SUPPORT === 'on') {
  require('feature');
  console.log('Enabled')

} else {
  console.log('disabled')
}

即使该值不是“ on”,它仍然需要模块。 我使用日志行进行了测试,打开和关闭时会显示正确的日志行。

我正在使用Webpack define插件来设置变量。 进行上述操作的主要原因是将捆绑包的尺寸保持较小,并且似乎没有这样做。

(代表问题作者发布答案)

因此,上面的代码几乎是正确的,我需要删除表达式并仅使用if(process.env.FEAT_SUPPORT) ,其中将FEAT_SUPPORT替换为“ true”或“ false”

可以在代码中的任何位置调用按设计require ,因此这将在包中添加一个新模块。 如果您想将需求拆分为一个单独的文件,则应使用require.ensure方法,该webpack将为您拆分它。

您还可以使用新的ES6 import()语法,这将创建相同的结果。

请阅读:webpack文档中的动态导入一章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM