Javascript 如何获取由标志设置的网页模式值?
我正在使用Javascript 如何获取由标志设置的网页模式值?,javascript,webpack,Javascript,Webpack,我正在使用图像网页加载程序优化图像。当我的网页模式为“开发”时,我想通过options.disable=true禁用它。现在我试图从process.env.NODE\u env获取模式,但它不起作用 以下是我的网页包配置的一部分: const config = { entry: './src/entry.js', output: { filename: 'script.js', }, module: { rules: [ { test:
图像网页加载程序优化图像。当我的网页模式为“开发”时,我想通过options.disable=true
禁用它。现在我试图从process.env.NODE\u env
获取模式,但它不起作用
以下是我的网页包配置的一部分:
const config = {
entry: './src/entry.js',
output: {
filename: 'script.js',
},
module: {
rules: [
{
test: /\.(png|svg|jpg|jpeg|webp)$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: 'images/',
},
},
{
loader: 'image-webpack-loader',
options: {
disable: process.env.NODE_ENV === 'development',
}
},
],
},
],
},
}
module.exports = (env, argv) => {
if (argv.mode === 'development') {
config.devtool = 'source-map';
config.mode = 'development';
} else {
config.mode = 'production';
}
return config;
};
我通过webpack--mode=production
和webpack--mode=development
运行我的conifg,这将不起作用,因为在构建期间,webpack仅设置节点_ENV
。如果希望在加载配置时设置此选项,则需要在命令行中启动构建时进行设置。但是,最好的选择是将配置转换为函数
const config = mode => ({
entry: './src/entry.js',
output: {
filename: 'script.js',
},
module: {
rules: [
{
test: /\.(png|svg|jpg|jpeg|webp)$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: 'images/',
},
},
{
loader: 'image-webpack-loader',
options: {
disable: mode === 'development',
}
},
],
},
],
},
devtool: mode === 'development' ? 'source-map' : undefined,
mode
})
module.exports = (env, argv) => config(argv.mode)