Webpack Config:在插件创建中查询模式选项

时间:2018-06-08 14:19:53

标签: webpack webpack.config.js mini-css-extract-plugin

如何查询mode配置文件中的webpack.config.js

这就是我想要做的。我在webpack配置中设置了mode

module.exports = {
  mode: 'development'
}

初始化mini-css-extract-plugin时,我想检查mode的值:

plugins: [
  new MiniCssExtractPlugin({
    filename: (mode === 'development' ? '[name].css' : '[name].[hash].css',
    chunkFilename: (mode === 'development' ? '[id].css' : '[id].[hash].css',
  })
],

显然这不起作用。如何在该插件初始化中查询mode

2 个答案:

答案 0 :(得分:0)

我找到了一个允许我作为参数传递mode的解决方案,但我仍然希望找到一种方法来访问配置中定义的mode属性。

module.exports = (env, argv) => ({
  mode: 'development',
  plugins: [
    new MiniCssExtractPlugin({
      filename: (argv.mode === 'development') ? '[name].css' : '[name].[hash].css',
      chunkFilename: (argv.mode === 'development') ? '[id].css' : '[id].[hash].css',
    }),
  ],
})

答案 1 :(得分:0)

我的想法。

运行NODE_ENV=development webpackNODE_ENV=production webpackwebpack

/* -------------------------------------
 *  webpack.config.js
 * ------------------------------------- */
const node_env = process.env.NODE_ENV ? process.env.NODE_ENV : 'production';
const devMode = node_env !== 'production';
if (devMode) {
   console.log('Looks like we are in development mode!');
}

module.exports = {
  mode: node_env,
...
  plugins: [
    new MiniCssExtractPlugin({
      filename: devMode ? '[name].[hash].css' : '[name].css',
      chunkFilename: devMode ? '[id].[hash].css' : '[id].css',
      }
    })
  ],
...
}