nuxt如何访问javascript文件中的env

2024-05-24

我无法在 nuxt 2.15 之外访问我的环境变量,当我部署时我可以看到$nuxt.context.$config在浏览器中有正确的变量,但在自定义js文件中我无法访问process.env.baseURL它返回未定义

// nuxt.config.ts
module.exports = {
  ssr: false,
  buildModules: [  
    ['@nuxtjs/dotenv', { systemvars: true }],
  ],
  publicRuntimeConfig: {
    baseURL: process.env.baseURL,
  }
  env: {
    baseURL: process.env.baseURL,
  }
}

这在页面/组件/中间件中工作得很好我可以使用 $config 对象访问这些值

问题是我有一个 JS 文件,我想在其中导入 baseURL 的值以在其他地方使用,但返回为未定义

//constant.ts

const { publicRuntimeConfig, env } = require('./nuxt.config.ts');
const { baseURL, VPN_IP, ADMIN_MODE } = publicRuntimeConfig;

console.info('constant: baseURL', baseURL); // also undefined

export const GRPC_HOST = process.env.baseURL;  //this is undefined

我尝试过更改启动命令nuxt start to node server/index.ts


const express = require('express');
const consola = require('consola');
require('dotenv').config();
const { Nuxt, Builder } = require('nuxt');
const app = express();

// Import and Set Nuxt.js options
const config = require('../nuxt.config.ts');
config.dev = process.env.NODE_ENV !== 'production';

async function start() {
  // Init Nuxt.js
  const nuxt = new Nuxt({ ...config, env: { baseURL: process.env.baseURL } });

  const { host, port } = nuxt.options.server;

  await nuxt.ready();
  // Build only in dev mode
  if (config.dev) {
    const builder = new Builder(nuxt);
    await builder.build();
  }

  // Give nuxt middleware to express
  app.use(nuxt.render);

  // Listen the server
  app.listen(port, host);
  consola.ready({
    message: `Server listening on https://${host}:${port} , environment:: ${process.env.NODE_ENV} baseURL:: ${process.env.baseURL}`,
    badge: true,
  });
}
start();

在服务器日志上,我可以看到此处设置了 baseURL NODE_ENV 设置为生产


尝试使用以下命令创建一个 javascript 文件$config。首先,您需要确保已正确导入 $config 对象。你可以使用window.$nuxt.$config与变量,

尝试这个:

const baseURL = window.$nuxt.$config.baseURL
console.info('constant: baseURL', baseURL)
export const GRPC_HOST = baseURL
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nuxt如何访问javascript文件中的env 的相关文章