首页 > 解决方案 > 如何将环境参数传递给 Laravel Mix 6?

问题描述

有没有办法通过命令行将参数传递给 laravel mix 并在 webpack.mix.js 文件中获取它们?例如,我添加了行frontend-dev,但运行“yarn run frontend-dev”后无法获取“foo”变量。

包.json

{
    "private": true,
    "scripts": {
        "development": "mix",
        "frontend-dev": "mix -- --env foo=frontend"
    },
    "devDependencies": {
        "axios": "^0.21",
        "laravel-mix": "^6.0.6",
        "lodash": "^4.17.19",
        "postcss": "^8.1.14"
    }
}

webpack.mix.js

const mix = require('laravel-mix');

//console.log(process.env);
console.log(process.env.foo); //output: undefined

标签: phplaravelwebpackenvironment-variableslaravel-mix

解决方案


您可以从命令行执行此操作...

npm run development --foo=frontend

然后在 webpack.mix.js 中,你可以在你的 foo 变量前加上npm_config_.

console.log(process.env.npm_config_foo);

MIX_否则,如果您希望值来自您的 .env 文件,您可能需要在 .env 变量前加上MIX_FOO_VARIABLE=frontend.

然后,在 webpack.mix.js 中,您可以执行以下操作。

console.log(process.env.MIX_FOO_VARIABLE);

推荐阅读