Webpack Config: запрос опции режима при создании плагина
Как бы я пошел по поводу запроса mode
в моем webpack.config.js
конфигурационный файл?
Вот что я хочу сделать. у меня есть mode
установите в моем конфиге webpack:
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
в рамках этой инициализации плагина?
1 ответ
Я нашел решение, которое позволяет мне получить доступ 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',
}),
],
})
Моя идея.
бежать NODE_ENV=development webpack
а также NODE_ENV=production webpack
или же webpack
/* -------------------------------------
* 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',
}
})
],
...
}