【问题标题】:.env Nuxt JS doesn't resolve routes in generate option correctly.env Nuxt JS 无法正确解析生成选项中的路由
【发布时间】:2020-01-17 04:42:12
【问题描述】:

我正在尝试使用 Nuxt JS 的 2.9.2 生成对象将动态页面生成为静态文件,使用我的 .env 文件来拉取 URL,我很难让它正确链接:

nuxt.config.js

require('dotenv').config();
import pkg from './package'
import axios from 'axios'

export default {
  mode: 'universal',

  env: {
    blog_api: process.env.BLOG_API || "http://localhost:3000/articles/blogs.json"
  },

  /*
  ** Build directory
  */
  generate: {
    dir: 'dist-next',
    routes: function () {
      return axios.get(`${process.env.blog_api}`)
      .then((res) => {
        return res.data.blogs.map((blog) => {
          return '/posts/view/' + blog.title
        })
      })
    }
  }
}

上面的代码,更具体地说是${process.env.blog_api},似乎无法解析路由,尽管如果我将其替换为我自己的本地域,它可以正常工作。

.env

BLOG_API="http://my-local-domain.clone/articles/blogs.json"

编辑:

使用我的配置更新代码,http://my-local-domain.clone/articles/blogs.jsonstatic/articles

【问题讨论】:

    标签: javascript vue.js vuejs2 nuxt.js


    【解决方案1】:

    你应该使用 dotenv 模块:

    https://www.npmjs.com/package/dotenv

    更多关于 NUXT 配置的信息在这里:

    https://samuelcoe.com/blog/nuxt-dotenv/

    你可能想在 nuxt.config.js 中设置你的 env 属性,例如:

    module.exports = {
      env: {
        BLOG_API: process.env.BLOG_API_URL,
      },
    

    在您的组件中,您现在可以使用它们了:

          makeAsyncCall({
            to: process.env.BLOG_API,
          })
    

    【讨论】:

    • 我已经包含 Dotenv,生成路由时出现以下错误:Error: Request failed with status code 400
    • 您可以创建 gist 或沙箱以更好地查看吗?
    • 我的代码库非常大,因此需要一些时间来充实最少的代码才能使其正常工作。我已经用我的确切配置更新了上面的描述,包括 .env 文件
    • 您是否将 env 文件放在项目的根目录下?您是否像教程中那样将 env 变量添加到 nuxt.config.js 中?
    • 我不需要组件内部的 BLOG_API,我要进一步引用它吗?在 nuxt 配置文件中的 generate 属性中
    猜你喜欢
    • 2014-11-14
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    相关资源
    最近更新 更多