【问题标题】:How to pass env parameters to a Laravel Mix 6?如何将环境参数传递给 Laravel Mix 6?
【发布时间】:2021-10-08 03:58:04
【问题描述】:

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

package.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

【问题讨论】:

    标签: laravel webpack environment-variables laravel-mix


    【解决方案1】:

    你可以从命令行来做...

    npm run development --foo=frontend
    

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

    console.log(process.env.npm_config_foo);
    

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

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

    console.log(process.env.MIX_FOO_VARIABLE);
    

    【讨论】:

    • 这在使用 mix 命令时不起作用:$ mix --production --ieCompat=true error: unknown option '--ieCompat=true'$ mix --production -- --ieCompat=true [webpack-cli] Error: Unknown option '--ieCompat=true'
    猜你喜欢
    • 2020-01-30
    • 2020-03-24
    • 2021-08-19
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2021-01-21
    相关资源
    最近更新 更多