Webpack配置:有条件导入模块

Sid*_*ain 7 eslint webpack babeljs

所以我想做:

if (process.env.NODE_ENV === 'production') {
  import StatsPlugin from 'webpack-stats-plugin';
}
Run Code Online (Sandbox Code Playgroud)

但是eslint说:

Parsing error: 'import' and 'export' may only appear at the top level
Run Code Online (Sandbox Code Playgroud)

我正在使用babel-eslint解析器.

这是否意味着我无法有条件地加载模块?

Joh*_*ald 6

ES2015模块无法进行动态同步导入.只能通过异步导入动态导入内容import().

你为什么不直接导入它并有条件地应用它?

import StatsPlugin from 'webpack-stats-plugin';

...

if (process.env.NODE_ENV === 'production') {
  config.plugins.push(new Statsplugin())
}
Run Code Online (Sandbox Code Playgroud)

  • webpack 1仍将包含它,因为CommonJS不允许这种优化,webpack 2可以在使用ES2015模块时删除未使用的功能.此功能称为树抖动. (7认同)