
运行 npm run dev 时出现 Unknown option '--env.mode=dev' 错误,根本原因是 Webpack CLI 不支持点号分隔的 --env.mode=dev 语法,必须改用空格分隔的标准格式 --env mode=dev。
运行 `npm run dev` 时出现 `unknown option '--env.mode=dev'` 错误,根本原因是 webpack cli 不支持点号分隔的 `--env.mode=dev` 语法,必须改用空格分隔的标准格式 `--env mode=dev`。
Webpack CLI 的 --env 参数用于向配置文件(如 webpack.config.js)传递环境变量,其设计规范明确要求使用 键值对空格分隔 的形式,而非点号或等号连接的嵌套式写法。错误写法 --env.mode=dev 会被 CLI 解析为一个未注册的长选项,因此直接报错。
✅ 正确写法如下(以 package.json 中的 script 为例):
{
"scripts": {
"dev": "webpack serve --env mode=dev --mode development"
}
}⚠️ 注意事项:
-
--env后必须紧跟一个空格,再写key=value(如mode=dev),不可加点号、连字符或引号包裹键名; - 若需传入多个环境变量,可重复使用
--env,例如:--env mode=dev --env target=client; - 在
webpack.config.js中,可通过导出函数接收 env 对象:
module.exports = (env, argv) => {
const isDev = env.mode === 'dev';
return {
mode: isDev ? 'development' : 'production',
// 其他配置...
};
};? 小贴士:运行 npx webpack --help 可查看所有支持的 CLI 选项;官方文档明确指出 --env 仅接受 --env KEY=VALUE 格式(见 Environment Options)。务必避免与旧版 Webpack 或其他工具(如 Vue CLI)的语法习惯混淆——Webpack CLI 始终遵循此约定。

















