【问题标题】:Make laravel mix proxy address the same for all projects使所有项目的 laravel mix 代理地址相同
【发布时间】:2020-04-03 13:41:49
【问题描述】:

我的项目有一些 laravel mix 设置:

  mix.js('resources/js/app.js', 'public/js')
   .sass('resources/scss/main.scss', 'public/css')
   .sass('resources/scss/test.scss', 'public/css')
   .options({
      processCssUrls: false
   })

  .copyDirectory('resources/images', 'public/images')
  .copyDirectory('resources/fonts', 'public/fonts')
  .browserSync({
    proxy: 'quiz.local',
    files: ["public/css/main.css", "public/js/*.js"],
    watchOptions: {
        ignored: /node_modules/
    }
})

我不喜欢这些设置的地方是代理地址不好 - 如果另一个开发人员有不同的本地地址,这对他们不起作用。除了要求他们将本地服务器名称更改为 quiz.local 之外,还有什么方法可以使其对所有开发人员有用吗?

【问题讨论】:

    标签: javascript laravel webpack


    【解决方案1】:

    您可以将environment variables 注入到 mix 中。理论上,每个.env 文件都应该是唯一的/无论如何都不能上传到版本控制。

    您可以将环境变量注入 Mix,方法是在 您的 .env 文件与 MIX_:

    MIX_SENTRY_DSN_PUBLIC=http://example.com

    变量后 在您的 .env 文件中定义,您可以通过 process.env 对象访问。 如果在您运行监视任务时值发生变化,您将需要 重新启动任务:

    在此之后,您的混音文件最终会看起来像这样;

    .browserSync({
        proxy: process.env.MIX_SENTRY_DSN_PUBLIC,
        files: ["public/css/main.css", "public/js/*.js"],
        watchOptions: {
            ignored: /node_modules/
        }
    

    【讨论】:

    • 您好,非常感谢您的回复,但您能详细说明一下吗?我应该在我的 .env 文件中创建一个变量 MIX_SENTRY_DSN_PUBLIC 并将其设置为我的本地地址——这就是我到目前为止所得到的;接下来我该怎么办? “您可以通过 process.env 对象访问”是什么意思?
    • 把代理改成proxy: process.env.MIX_SENTRY_DSN_PUBLIC,大概就是这里的意思,然后让其他开发者相应地填写他们的.env文件
    • @apokryfos 知道了,谢谢!现在它可以工作了,但是如果 smb 的本地地址不等于 quiz.local,我真的不明白它是如何工作的;它真的对他们有用吗?对不起,如果这是一个愚蠢的问题,只是想理解这个想法
    • @MikeL。每个开发人员都会将此条目添加到他们的.env 文件中,并指定他们自己的本地域。
    猜你喜欢
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多